Http请求-响应过程详解

liuhaozzu 2015-08-10 10:58:29
请求头:
GET /?cachebust=20141231 HTTP/1.1

Host: i.firefoxchina.cn
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: Hm_lvt_dd4738b5fb302cb062ef19107df5d2e4=1439204216,1439204339,1439204352,1439204527; Hm_lpvt_dd4738b5fb302cb062ef19107df5d2e4=1439213544
Connection: keep-alive

//如果是post方法,附加请求体

响应头:
HTTP/1.1 200 OK

Expires: Mon, 10 Aug 2015 14:00:22 GMT
Date: Mon, 10 Aug 2015 13:45:22 GMT
Server: nginx
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Cache-Control: max-age=900
content-security-policy: default-src 'self
Content-Encoding: gzip
Age: 791
X-Via: 1.1 lf156:88 (Cdn Cache Server V2.0), 1.1 jchwt16:7 (Cdn Cache Server V2.0)
Connection: keep-alive

http请求是典型的请求-响应类型的的网络协议。我们在分析请求行与请求头,以及响应行与响应头时,往往是一行一行的进行处理。如果我们自己来写一个http服务器,通常在一个连接建立好后(客户端与服务器经过三次握手 ),客户端会发送http请求过来。然后服务器读取第一行数据,分析出请求行中包含的method、uri、http_version信息。然后再一行一行处理请求头,并根据请求method与请求头的信息来决定是否有请求体以及请求体的长度,然后再去读取请求体。得到请求后,我们处理请求产生需要输出的数据,然后再生成响应行,响应头以及响应体。在将响应发送给客户端之后,一个完整的请求就处理完了。当然这是最简单的webserver的处理方式。

摘自http://tengine.taobao.org/book/index.html?highlight=nginxhttp://
...全文
1491 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
街头小贩 2015-10-14
  • 打赏
  • 举报
回复
据说apache有50000行代码,nginx也不大。要想系统的了解http,怎么能不看http权威指南
走在四季 2015-10-14
  • 打赏
  • 举报
回复
阅~~~~~~~~~~~~~~~~~~~~ 看来除了那几个内置对象还有别的一些东西。。。。
qq381289113 2015-09-11
  • 打赏
  • 举报
回复
大神,不错,学习了,谢谢,我学问下网络编程是怎么样的一个过程
yikeshuo 2015-09-08
  • 打赏
  • 举报
回复
学习一下.不过还是没有很透彻!
鹏怒而飞 2015-09-08
  • 打赏
  • 举报
回复
写得很清楚,学习了
艺哥来了 2015-09-08
  • 打赏
  • 举报
回复
写得很好,分析准确精准,用3个字可以表达,快,准,恨,来给点分吧
少主无翼 2015-09-06
  • 打赏
  • 举报
回复
接分
tyler372418338 2015-09-06
  • 打赏
  • 举报
回复
马七甲 2015-08-25
  • 打赏
  • 举报
回复
学习了
gukuitian 2015-08-11
  • 打赏
  • 举报
回复
你这是要散分么,结贴吧

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧