• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
demps_c
博客园    首页    新随笔    联系   管理    订阅  订阅
想做一个web服务器

学习了这么多天,对于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大小的数据,浏览器接收后解压缩文件。

posted on 2013-08-26 23:24  demps_c  阅读(310)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3