HTTP协议基本原理简介(二)

简介: HTTP协议基本原理简介(二)

今天给大家主要介绍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

目录
相关文章
|
5天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
5天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
5天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
7天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
Web App开发 新零售 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.尽可能地了解需求,系统层面适用开闭原则 2.模块化,低耦合,能快速响应变化,也可以避免一个子系统的问题波及整个大系统 3.
748 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
PipeMapRed.waitOutputThreads(): subprocess failed with code X ,这里code X对应的信息如下:error code 1: Operation not perm...
942 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
857 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
NoSuchObjectException(message:There is no database named cloudera_manager_metastore_canary_test_db_hive_hivemetastore_df61080e04cd7eb36c4336f71b5a8bc4) at org.
1079 0
|
Web App开发 前端开发 数据库
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Spark Streaming 的一些问题,做选型前关注这些问题可以有效的降低使用风险。 checkpoint checkpoint 是个很好的恢复机制。
935 0
下一篇
无影云桌面