网络知识之HTTP

网络知识之HTTP

一、基本概念

HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是用于从服务器传输超文本到本地浏览器的传送协议,是基于TCP/IP来传送数据的。

二、Http工作原理

在浏览器地址键入URL,工作流程:

1、 浏览器向DNS服务器请求解析该URL中的域名所对应的IP地址。

2、解析出IP地址后,根据该IP地址和默认端口号80,与服务器建立TCP连接。

3、浏览器发出HTTP请求给服务器。

4、服务器对浏览器请求做出响应,并把对应的html文本发送给浏览器

5、 释放TCP连接。

6、浏览器将该html文本显示出来。

三、HTTP请求与响应消息

HTTP消息包括客户端向服务器的请求消息服务器向客户端的响应消息

1、客户端向服务器的请求消息:

客户端向服务器的请求消息包括一下格式:请求行、请求头部、空行和请求数据四个部分组成,请求报文的格式如下:

image-20221007093855479

示例:

image-20221007094521553

(1)请求行

字段名 解释
请求方法 包括GET、POST、HEAD、PUT、DELETE、OPTIONS等请求方法
URL 请求对象的标识
HTTP版本 说明HTTP的 版本

(2)请求头

字段名 解释
Host 客户端指定自己想访问的WEB服务器的域名(或者是IP地址和端口号)
User-Agent 浏览器表名自己的身份(是哪种浏览器)
Accept 表示客户端期望服务器返回的媒体格式,一般取决于浏览器的偏好。q是相对品质因数,向服务器表明了媒体格式的优先级,如果不写默认就是1。在这个例子中浏览器希望先返回text/html,如果没有的话application/xhtml+xml也很希望(因为两个q都默认为1),实在不行也可以返回application/xml(但是不如前两种好,因为q=0.9),以此类推,* / *代表任意类型,意思就是之前的实在都没有那就返回任意类型吧,但是这个选择的优先级是最低的 。image-20221007102447928
Accept-Language 浏览器声明自己接受的语言
Accept-Encoding 浏览器声明自己接受的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)
Accept-Charset 告诉服务器自己能接受的字符集
Referer 浏览器向Web服务器表名自己是从哪个网页过来的(就是当你向一个服务器发起请求的时候,服务器会很好奇,你是从哪里知道它的,因此你需要通过http请求头中的referer字段告诉该服务器,我是从哪个页面过来访问你的。)
Content-Length 请求内容的长度
Content-Type 请求内容的MIME类型
X-Forwarded-For 记录一个请求从客户端出发到目标服务器过程中经历的代理,或者负载平衡设备的IP。

2、服务器向客户端的响应消息

响应消息报文格式:

image-20221007100136429

四、HTTP状态码说明

1XX:信息,服务器收到请求,需要请求者继续执行操作

2XX:成功,操作被成功接收并处理

3XX:重定向,需要进一步的操作以完成请求

4XX:客户端错误,请求包含语法错误或无法完成请求

5XX:服务器错误,服务器在处理请求的过程中发生了错误

五、常见HTTP状态码

200:请求成功

201:已创建,成功请求并创建了新的资源

202:已接受,已接受请求,但未处理完成

301:永久重定向,请求的资源被永久移到新URL,今后任何新的请求都应使用新的URL代替

302:暂时重定向,资源只是临时被移动,客户端仍使用原有的URL

400:客户端请求的语法错误,服务器无法理解

401:请求要求用户的身份认证

403:服务器理解客户端的请求,但是拒绝执行的请求

404:服务器无法根据客户端的请求找到资源

500:服务器内部错误,无法完成请求

501:服务器不支持请求的功能,无法完成请求

503:由于超载或系统维护,服务器暂时无法处理客户端的请求

posted @ 2023-06-19 15:01  6小1  阅读(36)  评论(0编辑  收藏  举报