深入Nginx之《HTTP请求报文与HTTP响应报文》

HTTP请求报文


 

 

这个很有必要了解,好歹我们得知道Nginx在提供HTTP服务时,客户端都会传些什么。HTTP请求中客户端传送的内容称为HTTP请求报文。

 

1、请求行包含:

 请求方法,请求URL,HTTP协议及版本。其中请求方法和支持的协议版本包含如下:
        GET,HEAD,POST 它们都支持HTTP1.0/1.1。
        PUT,DELETE,CONNECT,OPTIONS,TRACE,PATCH 它们只支持HTTP1.1。

 

2、请求头部:

客户端向服务器传递请求时附加的一些信息,由key/value组成,key和value由冒号分隔,每行一对,请求头常见的key 有 Cookie,User_Agent, Accept-Encoding。

 

3、请求体:

 一般是由POST方法提交,它可能是图片,文件,或者是字符串。

 

1.2 HTTP响应报文


  

      这个仍然很有必要了解的,客户端得到了想要东东(有时候可能也得不到,如服务异常了),那里面包含了些什么。HTTP请求后返回给客户端的内容称为HTTP响应报文。

HTTP响应报文(服务器返回给客户端的内容)由三部分组成,它们分别是响应行,响应头,响应体。

响应行包含HTTP协议版本,状态码,状态码描述。

 

其中状态码的分类如下:

状态码

                                          作用

1XX

它表示请求已经被接受,正在继续处理,这种响应是临时响应,不会返回响应体。

2XX

成功处理并返回,它表示在服务器内已经被接收,被知晓,并处理完成。

3XX

重定向功能,告知客户端需要继续执行操作才可以完成请求。

4XX

出现问题,和客户端有关系,比如401表示权限问题,404表示访问了一个不存在的URL。

5XX

出现问题,和服务端有关,比如500表示内部错误,504表示请求超时。

 

响应头,为响应报文附加额外的信息,和请求头相似。区别在于它是返回给客户端,请求头部是从客户端发起。常见的响应头key如Content-Type,Content-Encoding。

 

响应体,请求返回到客户端的正文数据。

 

下面是一个完整的响应报文示例:

 

响应报文并非只有Nginx的后端服务器才能发送的,有些时候Nginx也可以作为服务器对请求报文的内容进行响应,比如return,echo等指令。

posted @ 2018-08-07 17:57  dtdxrk  阅读(3237)  评论(0编辑  收藏  举报