HTTP协议(超文本转移协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
http的请求报文
1、请求行:请求方法,请求URL(不包括域名),HTTP协议版本
2、请求头部
- Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
- User-Agent:发送请求的浏览器类型、操作系统等信息
- Accept:客户端可识别的内容类型列表,用于指定客户端接收那些类型的信息
- Accept-Encoding:客户端可识别的数据编码
- Accept-Language:表示浏览器所支持的语言类型
- Connection:允许客户端和服务器指定与请求/响应连接有关的选项,例如这是为Keep-Alive则表示保持连接。
- Transfer-Encoding:告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式。
3、空行:http协议规定,一般采用\r\n
http的响应报文
1、响应行:服务器HTTP协议版本,响应状态码,状态码的文本描述
2、实体报头
- Content-Type:发送给接收者的实体正文的媒体类型
- Content-Lenght:实体正文的长度
- Content-Language:描述资源所用的自然语言,没有设置则该选项则认为实体内容将提供给所有的语言阅读
- Content-Encoding:实体报头被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。
- Last-Modified:实体报头用于指示资源的最后修改日期和时间
- Expires:实体报头给出响应过期的日期和时间
3、空行:http协议规定,一般采用\r\n
http//1.0:短连接,连接成功后通信一次,连接关闭
http//1.1:长连接,连接成功后,可以进行多次连接,直至连接关闭。
http与https的比较:
传输协议不同:http: 超文本传输协议,属于明文传输,连接简单,无状态连接。
https:具有安全性的SSL传输协议,是由SSL+HTTP协议构成的可进行加密传输,身份认证的网络协议。 需要申 请ca证书,且多数需要交费,更加安全。
端口号不同:http:80
https:443
http协议承载于TCP之上,同时承载于TLS/SSL之上就是我们所说的https。