今天给大家主要介绍HTTP协议的基本原理,本文主要内容是HTTP Request和Reponse格式详解。
一、HTTP Request和Reponse格式详解
在HTTP协议中,HTTP客户端向HTTP服务器发起的HTTP请求为Request包,而HTTP服务器向HTTP客户端进行的响应为Reponse包。HTTP客户端在收到HTTP Request包后,会对其中的信息进行处理,并生成Reponse的响应进行反馈。而HTTP客户端在收到HTTP服务器发送的Response包后,也会其中的信息进行解析,如果是使用浏览器,浏览器在对Reponse数据包进行处理后,呈现给用户的就是精美的网页了。不论是HTTP Reponse数据包还是HTTP Request数据包,数据包内部都可以分为请求行、请求头部和请求体三部分。
HTTP Request头格式如下:
HTTP Response头格式如下:
注:在上图中,方框的大小并不代表字段长度,实际上整个HTTP数据是作为TCP协议的负载而存在的,因此采用的是回车换行的方式来作为各个字段的分割,而不是像网络层协议一样,采用固定的长度。
在Linux系统中,我们可以使用curl命令来作为HTTP客户端,与HTTP服务端发起HTTP链接。如果加-v参数,可以很轻易的查看HTTP Request头和Response头的详细信息,效果如下所示:
目前,主流浏览器也提供了HTTP Request和Reponse头的查看功能,在访问页面按F12即可,如果是笔记本电脑,则需要按Fn+F12,效果如下所示:
二、HTTP Request请求方法详解
HTTP协议规定,HTTP Rquest请求一共有8种方法,这些方法都分别应用于不同的场景中。HTTP Request数据包在发送时第一个字段就是要指明使用的方法。
1、GET方法。 向服务器发出请求,获取服务端新数据。
2、POST方法。 向服务器发出请求,获取服务端新数据。POST方法与GET方法的区别在于,GET方法向服务器提交的参数是在URL后面的,而POST方法向服务器提交的参数时是作为HTTP内容存在的。
3、PUT方法。 PUT方法常用于更新数据,可以利用PUT方法向WEB服务器上传数据。
4、DELETE方法。 DELETE方法用于删除URL所标识的URL资源。
5、TRACE方法。 TRACE方法主要用于回显服务器收到的请求,主要用于测试和诊断。
6、CONNECT方法。 CONEECT方法是HTTP1.1新加入的方法,可以以管道的方式连接代理服务器。
7、OPTIONS方法。 OPTIONS方法是返回服务器针对特定资源所支持的HTTP请求方法。
8、HEAD方法。 HEAD方法也是向服务器发出请求,获取服务端数据,但是HEAD方法与GET和POST方法的区别是服务器在进行响应时不会返回详消息体。
以上的8种方法中,GET和POST方法较为常见。
三、HTTP状态码详解
HTTP状态码位于HTTP Reponse数据包的响应头处,是WEB服务器用于表示自身状态的字段。HTTP状态码分类如下所示:
1、100-199。 用于指定客户端应进行的操作。
2、200-299。 表示请求成功。
3、300-399。 表示重定向,客户端所请求的操作已经移动,并且新的位置已经在响应头中给出。
4、400-499。 用于表示客户端访问的错误。
5、500-599。 用于表示服务器自身的错误。
常见的HTTP状态码如下:
HTTP状态码 状态码含义
101 表示服务器根据客户端的请求切换到HTTP新的版本协议
200 HTTP请求成功
301 表示HTTP资源永久移动
302 表示HTTP资源暂时移动
400 客户端访问错误,服务端无法解析
404 服务端并没有客户端请求的资源
500 服务器内部错误,无法完成请求
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/121864748