HTTP
什么是http?
HTTP:(超文本传输协议)是一个简单的请求-响应协议,基于TCP/IP通信协议来传递数据的协议
- 文本:HTML,字符串
- 超文本:图片、音乐、视频、定位、地图
- 端口80
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
一般http中存在如下问题:
- 请求信息明文传输,容易被窃听截取。
- 数据的完整性未校验,容易被篡改
- 没有验证对方身份,存在冒充危险
为了解决上述HTTP存在的问题,就用到了HTTPS:
HTTPS:一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
工作原理:
- 首先客户端通过URL访问服务器建立SSL连接。
- 服务端收到客户端请求后,会将网站支持的证书信息(证书中包含公钥)传送一份给客户端。
- 客户端的服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
- 服务器利用自己的私钥解密出会话密钥。
- 服务器利用会话密钥加密与客户端之间的通信。
HTTP请求
客户端----发请求(Request)-------服务器
URL 只是标识资源的位置, 而 HTTP 是用来提交和获取资源。
客户端发送一个 HTTP请求到服务器的请求消息, 包括以下格式:
请求行、 请求头部、 空行、 请求数据
HTTP响应
服务器-----响应------客户端