基础概念篇.DOCVIP

  • 1
  • 0
  • 约2.11万字
  • 约 28页
  • 2017-08-16 发布于天津
  • 举报
基础概念篇

http协议学习系列 /blog/568250 HTTP 协议简介 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 设置Capture选项 一般读者只需要选择最上边的下拉框,选择合适的Device,而后点击“Capture Filter”,此处选择的是“HTTP TCP port(80)”,选择后点击上图的“Start”开始抓包。 图2 选择Capture Filter 例如在浏览器中打开/,抓包如图3所示: /DownloadImg/2010/09/3017/5657919_5.jpg 图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所示: /DownloadImg/2010/09/3017/565791

文档评论(0)

1亿VIP精品文档

相关文档