http协议字段说明

柔情痞子 提交于 2020-03-06 18:38:33

http协议的构成及字段说明(请求头、请求体、响应头)

HTTP请求:Hyper Text Transfer Protocol的缩写,即超文本传输协议。

HTTP协议的结构

HTTP报文由客户机到服务器的请求和从服务器到客户机的相应构成。

1、请求报文的组成:

请求行 信息头 请求头 实体头 报文主体

请求行的格式如下:

Method [分隔符] Request - URL [分隔符] HTTP-Version CRLF

解释说明:

(1)Method 表示完成Request - URL的方法,该字段是大小写敏感的,据RFC2616标准(现行的HTTP/1.1)得知,通常有以下8种方法:

  • OPTIONS
  • 请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项
  • HEAD
  • HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体
  • PUT
  • 把消息本体中的消息发送到一个URL,跟POST类似
  • TRACE
  • 是用来调用一个远程的请求信息应用程序层的循环后退
  • CONNECT
  • HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
  • DELETE
  • 请求服务器删除Request-URI所标识的资源
  • GET
  • 由客户端请求服务端获取Request-URI所标识的资源的方法
  • POST
  • 由客户端向服务端提交Request-URI所标识的资源后附加新的数据

(2)[分隔符]为空格

(3)Request - URL: 遵循URL格式,此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务本身。

(4)HTTP-Version:表示支持的HTTP版本,如HTTP/1.1

(5)CRLF:表示换行回车符

HTTP的头包括通用的信息头、请求头、响应头、实体头4部分,每个头域由一个域名、冒号和值域3部分组成。域名是大小写无关的;域值前可以添加任何数量的空格,每个HTTP请求可以包含多个HTTP头域。

HTTP报文主体则包含了HTTP请求的内容,对于get方法,报文主体为空,对于post方法,报文主体则包含需要发送给服务器的数据。

2、响应报文的组成:

状态行 信息头 响应头 实体头 报文主体

解释说明:

状态行由状态码和原因分析两部分组成,其中,状态码由3位数字组成,表示请求是否被理解或被满足,用来支持自动操作;原因分析是对原文的状态码作简单的描述,用于供用户使用。

3、无论是请求报文还是响应报文,虽然分别由以上五个部分组成,但是在一定情况下有些并不是必须要的,但是对于:General-header(通用头部)、请求头(客户端->服务器[Request Header])、响应头(服务端->客户端[Response Header]) 这三部分是必须要有的。于是我那一个实例来对这三部分的内容进行说明记录:

(1)General-header(通用头部)

(2)请求头(客户端->服务器[Request Header]) --以下数据是通过fidder抓取所得(关于Fidder基本说明的去这          里:https://www.cnblogs.com/Zhan-W/p/9813218.html)。

(3)响应头(服务端->客户端[Response Header])

         其中涉及到前端页面性能问题的字段主要有以下:Accept-Encoding、Connection、Date

4、GET与POST请求过程

POST请求的过程:

  • 浏览器请求tcp连接(第一次握手)
  • 服务器答应进行tcp连接(第二次握手)
  • 浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  • 服务器返回100 Continue响应
  • 浏览器发送数据
  • 服务器返回200 OK响应

GET请求的过程:

  • 浏览器请求tcp连接(第一次握手)
  • 服务器答应进行tcp连接(第二次握手)
  • 浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  • 服务器返回200OK响应

5、HTTP状态码的分类

  • 分类
  • 分类描述
  • 1**
  • 信息,服务器收到请求,需要请求者继续执行操作
  • 2**
  • 成功,操作被成功接收并处理
  • 3**
  • 重定向,需要进一步的操作以完成请求
  • 4**
  • 客户端错误,请求包含语法错误或无法完成请求
  • 5**
  • 服务器错误,服务器在处理请求的过程中发生了错误

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!