学习了这么多天,对于ip,http,http协议基本了解了,也基本掌握了boa服务器,现在正在学习nginx服务器,源代码有些难度,因为设计的太精巧了,目前很难完全掌握nginx所以呢,只能更好的学习,了解nginx
今天写下http协议吧
具体就一份wireshart扑捉到的数据来分析
首先httpexpert info
request method 是get 然后一个空格 然后是request url 是一个/然后空格,后面是request version http/1.1然后\r\n
这个格式是固定的(这三个是不包括request及后面的第一个单词)
接下来是host本例是nginx.org\r\n 主机
接下来是connecttion 表示保持连接状态\r\n
accept代表接受的mime类型\r\n
useragent一般代表浏览器,即实际上是agent帮你提出请求,然后收到服务器的数据,然后调用浏览器显式出来
dnt 代表do not track 别跟踪这个是网站或广告商通过cookie或其它途径记录用户的访问 例如用户的地理位置 使用习惯 以此作为统计来源进一步改善服务
但是 用户浏览什么网页 执行什么操作 在哪个城市 连同可能注册的用户名在内 会被记录在服务器上
DNT服务使用户表达不希望被跟踪 用户对网站说Don't track me\r\n
refer 上一个页面的地址(url),通俗讲就是来源地址。\r\n
accept encoding代表接受压缩的软件\r\n
accept-language 接受的语言\r\n
cookie\r\n
\r\n
这个response消息
request version :http/1.1
status code : 200
response phrase: 0k
接下来是server:nginx/1.5.3\r\n
date 代表服务器发送给浏览器文件的时间,\r\n
content type代表服务器发送文件的类型(也就是浏览器接受文件的类型\r\n
last-modified 服务器发送文件最后修改时间\r\n
connection 也是keep-alive\r\n
etag\r\n
content-encoding 代表压缩软件\r\n
\r\n
然后一个contentencoded entity body 是一个压缩后的文件大小为2363字节,->后面代表压缩前的大小,实际值为7620,这里是一个2363大小的数据
然后是line-encoded textdata;
大小为7620,估计是网络中不存在这个数据 ,存在的是2363大小的数据,浏览器接收后解压缩文件。