http协议学习系列-阿蜜果文件.pdfVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
http 协议学习系列 文:阿蜜果 日期:2009-11-30 1. 基础概念篇 1.1 介绍 HTTP 是 Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协 会(World Wide Web Consortium)和 Internet 工作小组 IETF(Internet Engineering Task Force) 合作的结果,(他们)最终发布了一系列的 RFC,RFC 1945 定义了 HTTP/1.0 版本。其中最著 名的就是 RFC 2616。RFC 2616 定义了今天普遍使用的一个版本——HTTP 1.1。 HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从 WWW 服务器传输 超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证 计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显 示(如文本先于图形)等。 HTTP 是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP 是一个无状态的协议。 1.2 在 TCP/IP 协议栈中的位置 HTTP 协议通常承载于 TCP 协议之上,有时也承载于 TLS 或 SSL 协议层之上,这个时候, 就成了我们常说的 HTTPS。如下图所示: 默认 HTTP 的端口号为 80,HTTPS 的端口号为 443。 1.3 HTTP 的请求响应模型 HTTP 协议永远都是客户端发起请求,服务器回送响应。见下图: 这样就限制了使用 HTTP 协议,无法实现在客户端没有发起请求的时候,服务器将消息 推送给客户端。 HTTP 协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 1.4 工作流程 一次 HTTP 操作称为一个事务,其工作过程可分为四步: 1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP 的工作开始。 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符 (URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和可能的内容。 3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议 版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内 容。 4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与 服务器断开连接。 如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏 输出。对于用户来说,这些过程是由 HTTP 自己完成的,用户只要用鼠标点击,等待信息显 示就可以了。 1.5 使用 Wireshark 抓 TCP、http 包 打开 Wireshark,选择工具栏上的“Capture”-“Options”,界面选择如图 1 所示: 图 1 一般读者只需要选择最上边的下拉框,选择合适的 Device,而后点击“Capture Filter”, 此处选择的是“HTTP TCP port(80)”,选择后点击上图的“Start”开始抓包。 图 2 例如在浏览器中打开 /,抓包如图 3 所示: 图 3 在上图中,可清晰的看到客户端浏览器(ip 为 3)与服务器的交互过程: 1)No1:浏览器(3)向服务器(18)发出连接请求。此为 TCP 三次握手第一步,此时从图中可以看出,为 SYN,seq:X (x=0) 2)No2:服务器(18)回应了浏览器(3)的请求,并要求确认, 此时为:SYN,ACK,此时 seq:y(y 为 0),ACK:x+1(为 1)。此为三次握手的第二步; 3)No3:浏览器(3)回应了服务器(18)的确认,连接成功。 为:ACK,此时 seq:x+1(为 1),ACK:y+1(为 1)。此为三次握手的第三步; 4)No4:浏览器(3)发出一个页面 HTTP 请求; 5)No5:服务器(18)确认; 6)No6:服务器(18)发送数据; 7)No7:客户端浏览器(3)确认; 8)No14:客户端(3)发出一个图片 HTTP 请求; 9)No15:服务器(18)发送状态响应码 200 OK …… 1.6 常见头域 每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可 以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制 表符。 在抓包的图中,No14 点开可看到如图 4 所示: 图 4 回应的消息如图 5 所示: 图 5 1.6.1 ho

文档评论(0)

DKman_80 + 关注
实名认证
文档贡献者

海内存知己 天涯若比邻

1亿VIP精品文档

相关文档