[http]

HTTP协议报文

请求报文

在这里插入图片描述

请求行

由方法字段、URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开

常用请求方法

  • GET

    • 当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端

    • 使用GET方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表

    • URL 的结尾与请求参数的开始,传递参数长度受限制,因此GET方法不适合用于上传数据

    • 通过GET方法来获取网页时,参数会显示在浏览器地址栏上,因此保密性很差

        GET / HTTP/1.1
        Host: 192.168.11.80:9889
        User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: en-US,en;q=0.5
        Accept-Encoding: gzip, deflate
        Connection: keep-alive
      
  • POST

  • 当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理

  • GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息,POST 方法将请求参数封装在HTTP 请求数据中,而且长度没有限制,因为POST携带的数据,在HTTP的请求正文中,以名称/值的形式出现,可以传输大量数据

      POST /search HTTP/1.1  
      Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
      application/vnd.ms-excel, application/vnd.ms-
      powerpoint,application/msword, application/x-silverlight, application/x-
      shockwave-flash, */*  
      Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>  
      Accept-Language: zh-cn  
      Accept-Encoding: gzip, deflate  
      User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)  
      Host: <a href="http://www.google.cn">www.google.cn</a>  
      Connection: Keep-Alive  
      Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;
      NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r  
       
      hl=zh-CN&source=hp&q=domety 
    

请求头

请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔;通知服务器有关于客户端请求的信息

请求空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头

请求体

请求包体不在GET方法中使用,而是POST方法中使用.POST方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型Content-Type包体长度Content-Length

响应报文

在这里插入图片描述

状态行

由 HTTP 协议版本字段、状态码和状态码的描述文本3个部分组成,他们之间使用空格隔开
在这里插入图片描述

响应头

响应空行

响应体

服务器返回给客户端的文本信息

HTTP协议通信

  • 服务器方面,使用Web服务器,采用HTTP协议来代替底层的socket,是常见的选择
  • 采用HTTP协议更加除了能得到稳定的服务器支持外,更加可以兼容各种客户端(手机、PC、浏览器)等等。这样实现了一个服务器之后,多个客户端可以通用

通信过程

在这里插入图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页