轻度解释 Http 协议

记得我们上一章节说过, 浏览器发给服务器一个约定格式的数据包, 服务器回给浏览器一个约定格式的数据包. 这章节我们来讲讲这个 **约定格式的数据包 **.

为什么本章叫轻度解释, 因为如果重度解释, 可能要花3 4百页去解释, 我们首先对他要有个必要的基本了解就好啦. 轻度加比较口语化的方式, 让菜菜同学对Http有个宏观的了解, 对以后编程不走弯路是十分有用滴.

  • 上述的 约定的数据包 中的 ** 约定 ** 二字, 本质就是 Http 协议. 通俗讲, 协议就是双方约定好的事儿. 我们约定了, 浏览器怎么请求, 服务器怎么响应.

  • 简述 Http 请求报文 (报文就是那个数据包的意思啦)
    我随便抓了一个请求报文, 长这个样子:

req.png

解释下这个报文

第一行是说

  1. 获取资源的方式, 叫GET(浏览器基本有GET和POST两种方式, 区别后续会讲解)
  2. 我要获取这个资源! 路径是是/
  3. 让我们使用 HTTP 1.1 版本愉快的通信吧 (因为协议是有升级迭代的, 新旧版本可能有些许不同, 所以通信前要约定一下)

从第二行到结束, 整个部分都叫 请求头

  1. Accept : 我浏览器支持这些类型的资源显示
  2. Referer(可能会有, 图中没有) : 这个请求是在哪个来源页面发起的. 比如我通过A页面链接a, 点到了B页面, 那么获取B页面的请求头就是A页面的URL
  3. Accept-Language: 我浏览器支持什么语言
  4. User-Agent: 我浏览器叫什么名字
  5. Accept-Encoding 是说, 我支持怎么样的内容编码. 这个例子写的gzip 就是说, 你服务器可以把网页内容用 gzip(一种压缩算法)压缩, 我可以解压滴
  6. Host 是说, 请求的主机(可以是域名, 或者IP, 如果请求的不是80端口这里的格式就会变成 xxx.com:8080)
  7. Connection: Keep-Alive 是告诉服务器, 我们通信完以后, 你可以别立刻断开(因为断开再连接会消耗资源: 具体解释要看TCP协议了, 我们暂时不讲它, 后面用到了详细讲解)
  8. Cookie: 是一个重要的东西, 他是服务器通过响应报文存在浏览器的一些数据. 这个我们实战用到时再讲啦

上述的是一个GET请求, POST请求还会有 请求体 部分, 请求头后有\r\n\r\n四个字符(这是特殊的看不见的字符), 字符后就是请求体. 而每个请求头之间, 是 \r\n 两个字符区分.

\r\n展开讲又是一章字符集特辑. 不过我们暂时简单理解, \r是一个特殊字符, 看不见的, \n也是一个特殊字符看不见的.

扩展 1. 这两个字符来自在古老的打字机时代, 打字员打字换行, 是要按两个键的, 一个\r(表示回到行首), 一个\n(表示去下一行) .

扩展 2. 后面的三大系统 Windows Linux Mac, 他们储存文本时候, 默认的换行符都不同. Windows秉持了打字机的 \r\n, Linux用了\n, Mac用了\r

  • ** 简述 Http 响应报文 **
    抓个响应报文瞧瞧


    resp.png

来解释一下这个报文

第一行是说

  1. 本报文遵循Http1.1协议
  2. 这次响应的状态码是200 (查看详细Http状态码定义)
  3. 状态码描述是 OK

从第二行开始一直到\r\n\r\n处是响应头 (俺挑主要的描述下, 其他有兴趣可以Google)

  1. Date: 服务器时间
  2. Server: 服务器类型(Apache是一种Web服务器)
  3. Last-Modified: 这个资源上次变更时间
  4. ETag : 每次资源变更, 都会生成的一个字符串
    Last-Modified 和 ETag 是和响应状态码304有密切关系的, 后面讲到再说.
  5. Content-Encoding: 编码类型. 前面请求头果说了, 俺支持GZip, 响应时服务器就可以把内容GZip压缩, 然后用这个头表示, 内容是GZip过的. 浏览器看到这个头信息, 就用UnGZip方式去解压响应体的内容, 然后展示.
  6. Content-Length: 响应体有多大
  7. Connection: Keep-Alive : 我服务器没关闭连接, 连接还能继续复用.
  8. Content-Type: 资源的类型. 比如一张图片, 响应头就应该是 image/jpeg之类的, 如果你给成了 text/html, 那浏览器就把你给的响应体内容, 当成网页的方式去渲染啦, 结果肯定乱掉.

\r\n\r\n 之后, 就是响应体内容. 可能是个网页, 或者是个图片等等

  • 关于整个网络上的资源

    1. 你打开浏览器访问网页, 看到的内容可以称为网络上的资源. 这些资源都有自己的一个唯一标识, 这个标识就是我们所说的URL(统一资源定位符)
    2. 现在我们再讲一下网页显示的过程
    3. 我们打开一个网页的URL, 浏览器发了一个请求
    4. 服务器接收到这个请求, 给出响应内容
    5. 浏览器进行网页解析&&渲染(这时候的网页是一个骨架)
    6. 浏览器在解析的同时, 发现网页里的代码又要去请求图片呀, 样式表(css)呀等等的资源, 于是浏览器一边发这些请求, 一边进行解析渲染.
    7. 整个过程完成了, 也就页面终于显示正常了
    8. 在这个过程中, 万一网络问题, 某些资源没加载成功, 页面就可能乱掉, 或者功能不可用, 这个我们在上网过程种会经常见到吧 :)
  • 这里按比较口语的方式讲解的, 便于理解, 比较学术范儿的, 有篇不错的文章, 如果菜菜还没有晕掉, 在心情好的时候, 可以看看
    HTTP协议详解
    如果这篇看不全懂也不用着急, 后面用到时候再讲就OK啦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,435评论 0 20
  • 本文整理自MIN飞翔博客 [1] 1. 概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或...
    HoyaWhite阅读 2,634评论 2 20
  • PS:简书的网址真不是给人看的。。。我单独开了一个网址可以重定向到我的简书主页。博客地址:flutterall.c...
    徐爱卿阅读 6,904评论 21 97
  • 各位大佬、老爷如果觉得还可以的话,记得点个订阅与关注!不然,下次就找不到啦! 小手在哪里?让我看到你们的转发与收藏...
    电娱时代阅读 403评论 0 0
  • 亦很多事情,就在生命的放逐里逝去,就如每个灵魂是日渐暗淡的亡灵,候着七日的死神给予重生,亦是天堂,亦是地狱,亦是极...
    叉小叉阅读 191评论 0 0