HTML5中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1169|回复: 0

[文章] 一个http请求背后的故事之三

[复制链接]

该用户从未签到

发表于 2015-11-25 21:50:19 | 显示全部楼层 |阅读模式
本帖最后由 执剑为何 于 2015-11-25 21:56 编辑

报文封装
建立TCP或TSL通道到,需要按照HTTP报文协议进行封包。协议或者报文用一个例子说明的话,就像打电话当电话接通后,你可以说中文、英文、德语等等,只要双方约定好并能识别就可以了。HTTP报文是纯文本的明文,主要包括消息头HTTP Head和消息体HTTP Body两部分。
消息头又分两种,请求时的消息头和响应时的消息头。前者主要描述请求的主机地址和URL,本地浏览器支持的文本格式、语言和编码方式,浏览器相关的信息,Cookie,是否要保持长连接等信息,后者主要描述返回的消息内容使用的语言、编码方式、文本格式以及消息体的长度、服务器信息,如果请求头中没有带Cookie的话,响应头可能还包含设置Cookie的信息。
请求时的消息头(Request Header)主要包括:
消息头说明
Accept表示本地浏览器可以接受的媒体类型,比如最常见的:text/htmlimage/jpeg等,服务端在返回时用Content-Type来指明返回的格式
Accept-Charset用来指明可以接受的字符集,比如:asciiutf-8iso-8859-1等,服务端返回时也在Content-Type中用charset来标明
Accept-Encoding可接受的编码方式,常见的有非压缩的和压缩格式,比如:gzip,用于减少网络流量传输,提高性能
Accept-Language接受的语言,比如我们中文是 zh_CN ,英文是 us_EN ,可以用权重来标明优先级
From请求来自哪里,这里放置的是一个Email,一般用于爬虫,方便对方联系
Host请求的服务器地址和端口
If-Modified-Since如果服务端的内容从该字段指定的时间没有发生的变动,服务端返回304,客户端使用缓存中的数据
Referer用来标识这个请求是从哪个URL跳转过来的
User-Agent浏览器信息,使用 curl 这种命令行的方式访问的话通常没有这个标识
返回时的消息头(Response Head)主要包括:
消息头说明
Content-Type主要包括文本格式和字符集
Content-Lenght消息体的长度
ServerWeb服务器类型
消息头和消息体中间隔一个空行作为分隔,消息体通常就是我们在浏览器中点击右键查看页面源代码看出的HTML内容,在做前端页面编码时写的就是这部分内容,当然这些HTML代码有可能是静态页面,也可能是动态页面生成的,比如:jsp、asp,还有模板等。
    作者:yikebocai

HTML5中国微信

小黑屋|关于我们|HTML5论坛|友情链接|手机版|HTML5中国 ( 京ICP备11006447号 京公网安备:11010802018489号  

GMT+8, 2017-6-29 04:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表