目录
1.HTTP
1.1.概述
1.2.报文结构
1.2.1.请求报文
1.2.2.响应报文
1.3.方法
2.HTTPS
1.HTTP
1.1.概述
HTTP,超文本传输协议,WEB体系选用了该协议作为应用层协议。
1.2.报文结构
1.2.1.请求报文
HTTP的请求报文(request)由四部分组成:请求行(request line)、请求头部(header)、空行和请求数据(request data)
名称 | 作用 |
请求行 | 记录请求方法、URL、HTTP协议版本号 |
请求头 | 以键值对的方式记录一些附加信息,如cookie、编码、host等 |
请求数据 | 请求数据,也叫请求体,不在GET方法中使用,而是在POST方法中使用, POST方法适用于需要客户填写表单的场合。 请求头中存在两个与请求数据相关的重要key:Content-Type和Content-Length。 |
也就是说只有Post请求有请求体,以一个带数据的Post请求在浏览器调试模式中的呈现为例:
1.2.2.响应报文
HTTP的响应报文(response)中最重要的两部分:
- 状态码,记录响应的状态
- 响应体,记录响应的数据,可以是网页(HTML代码)、图片、视频、音频等。
以一个以一个响应在浏览器调试模式中的呈现为例:
1.3.方法
HTTP中总共有GET、POST、PUT、DELETE、CONNECT、HEAD,本来设计的初衷是想让对服务器的每一种操作都有对应的方法,但在实际使用中发现其实GET、POST两个方法就足够了,GET负责向服务器要数据,POST负责向服务器存数据。
GET、POST区别:
名称 | 特点 |
GET | 参数在URL中,数据大小不能超过2KB |
POST | 数据在HTTP报文的“请求数据”这一区域,理论上大小没有上限 |
2.HTTPS
https=http+ssl/TSL,即使用HTTP进行通信,使用SSL/TLS对数据进行保护。
SSL/TLS工作在HTTP协议(应用层)和TCP(传输层)间的中间层,对HTTP进行保护后再放到TCP上进行传输。
SSL/TLS在三个维度对数据进行保护:
-
内容加密:采用混合加密技术,中间者无法直接查看明文内容
-
验证身份:通过证书认证客户端访问的是自己的服务器
-
保护数据完整性:防止传输的内容被中间人冒充或者篡改
SSL/TLS是两个不同的协议。
SSL:
Secure Sockets Layer,安全套接层协议,为网络通信提供安全及数据完整性的一种安全协议。在1994年被Netscape发明,后来各个浏览器均支持SSL,其最新的版本是3.0。
TLS:
Transport Layer Security,安全传输层协议,最新版本的TLS(Transport Layer Security,传输层安全协议)是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLS与SSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLS与SSL3.0不能互操作。虽然TLS与SSL3.0在加密算法上不同,但是在理解HTTPS的过程中,可以把SSL和TLS看做是同一个协议。
SSL/TLS的工作机制:
SSL/TLS的机制类似于TCP,采用握手的方式在连接建立阶段完成加解密方法、密钥等数据的协商确定,然后后续的数据通信过程均采用协商的结果。
SSL证书:
配置在服务器上,也称为SSL服务器证书,记录当前服务器支持的加密算法、密钥等信息,这是使用SSL/STL时的核心实体,将其配置在服务器上即可,整个HTTPS里客户端和服务器建立安全的连接靠的就是读取改文件从而进行决策。