什么是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协议采用了请求/响应模型:
客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。
服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
HTTP的缺点
通信使用明文,内容可能会被窃听
不验证通信方的身份,有可能遭遇伪装
无法证明报文的完整性,有可能信息已遭篡改
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重定向,要求访问到新的域名