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

目录
相关文章
|
9天前
|
缓存 网络协议
【计算机协议】第一章——HTTP协议详解
【计算机协议】第一章——HTTP协议详解
|
10天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
12天前
|
缓存 安全 网络协议
Http协议是什么
【4月更文挑战第12天】HTTP是用于从WWW服务器传输超文本到浏览器的协议,基于TCP/IP,特点包括无连接、无状态、面向对象、无阻塞和可缓存。它的工作原理是客户端发送请求,服务器处理后返回响应。自1989年创建以来,HTTP已发展支持多媒体内容传输,并通过HTTPS提供安全保护。学习更多可参考计算机网络技术文献。
18 6
|
15天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
27 0
|
18天前
|
Java
java原生发送http请求
java原生发送http请求
|
25天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
56 1
|
1月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
73 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
1月前
|
JSON 数据格式
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
27 0
|
7天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
20 8
|
1天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求