http协议详解(超详细)

  

     

  

  1.1介绍   

  

  ,HTTP是超文本传输协议(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和互联网工作小组IETF(因特网工程任务组)合作的结果,(他)们最终发布了一系列的RFC, RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616. RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。   

  

  HTTP协议(超文本传输协议,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。   

  

  HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型.北京是一个无状态的协议。   

  

  1.2在TCP/IP协议栈中的位置   

  

  HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:
  ,,, http协议详解(超详细)   

  

  默认HTTP的端口号为80,HTTPS的端口号为443。   

  

  HTTP 1.3的请求响应模型   

  

  HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:
  ,, http协议详解(超详细)   

  

  这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。   

  

  HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。   

  

  1.4工作流程   

  

  一次HTTP操作称为一个事务,其工作过程可分为四步:   

  

  1)首先客户机与服务器需要建立连接,只要单击某个超级链接,HTTP的工作开始。   

  

  2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL),协议版本号,后边是MIME信息包括请求修饰符,客户机信息和可能的内容。   

  

  3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号,一个成功或错误的代码,后边是MIME信息包括服务器信息,实体信息和可能的内容。   

  

  4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。   

  

  如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。   

  

  1.5使用Wireshark抓TCP、http包   

  

  打开Wireshark,选择工具栏上的“捕获”→“选项”,界面选择如图1所示:
  ,,,,,,,,,,,,,,,,,,,,,,,,,,, http协议详解(超详细)   

  

  图1设置捕捉选项   

  

  一般读者只需要选择最上边的下拉框,选择合适的设备,而后点击“捕捉过滤器”,此处选择的是“HTTP TCP端口(80)”,选择后点击上图的“开始”开始抓包。
  ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, http协议详解(超详细)   

  

  图2选择捕捉过滤器   

  

  例如在浏览器中打开http://image.baidu.com/,抓包如图3所示:
  ,,, http协议详解(超详细)   

  

  图3,,抓包   

  

  在上图中,可清晰的看到客户端浏览器(ip为192.168.2.33)与服务器的交互过程:   

  

  1)第一:浏览器(192.168.2.33)向服务器(220.181.50.118)发出连接请求。此为TCP三次握手第一步,此时从图中可以看的出,为SYN, seq: X (X=0)   

http协议详解(超详细)