HTTP协议

作者:陈年老陈皮 发布时间: 2024-08-26 阅读量:25

什么是HTTP

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。RFC2616定义了HTTP 1.1,最新为HTTP 2.0。

HTTP工作原理

HTTP协议采用了请求/响应模型:

  1. 客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。

  2. 服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

HTTP的缺点

  1. 通信使用明文,内容可能会被窃听

  2. 不验证通信方的身份,有可能遭遇伪装

  3. 无法证明报文的完整性,有可能信息已遭篡改

Request消息

第一部分:请求行,用来说明请求类型,要访问的资源,以及所使用的HTTP版本

GET说明请求类型为GET,“/”为要访问的资源,最后一部分说明使用的是HTTP1.1版本。

第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息

从第二行起为请求头部,HOST将指出请求的目的地。User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类季测逻辑的重要基础。该信息由你的浏览器来定义,并且在每个请求中自动发送等等

第三部分:空行,请求头部后面的空行是必须的

即使第四部分的请求数据为空,也必须有空行。

第四部分:请求数据也叫主体,可以添加任意的其他数据。

Respond消息

第一部分:状态行,由HTTP协议版本号、状态码、状态消息 三部分组成。

(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)

第二部分:消息报头,用来说明客户端要使用的一些附加信息

如上图:Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html)编码类型是UTF-8

第三部分:空行,消息报头后面的空行是必须的。

第四部分:响应正文,服务器返回给客户端的文本信息。

空行后面的html部分为响应正文。

为什么在浏览器输入aaa.cn这个网址,访问后会跳转到bbb.com

浏览器发送GET请求后,服务器返回了状态码302重定向,要求访问到新的域名