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

目录
相关文章
|
1天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
13 3
|
3天前
|
安全 网络安全 数据安全/隐私保护
http原理
http原理
12 3
|
5天前
|
缓存 网络协议 UED
HTTP协议介绍
HTTP协议的
16 5
|
5天前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
5天前
|
缓存 开发者
HTTP协议
HTTP协议
16 2
|
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
Found lingering reference异常 ERROR: Found lingering reference file hdfs://jiujiang1:9000/hbase/month_hotstatic/...
709 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
java链接MongoDB处理大量数据时经常碰到cursor not found 的异常,其实是超时所致 Exception in thread "main" com.
823 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
负载均衡: LVS(Layer 4), HAProxy(Layer 4、 7),Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存...
751 0
|
Web App开发 监控 前端开发

热门文章

最新文章