一、通信
1. 通信是信息的传递和交换。
2. 通信三要素
通信主体、通信内容、通信方式。
3. 通信协议
通信协议是通信双方完成通信所事先约定好的、必修遵守的通信规则。
通信双方采用规定好的格式发送和接收消息。
二、HTTP
1. HTTP(HyperText Transfer Protocol)
超文本传输协议。客户端与服务器之间网页内容(超文本)的传输协议。
采用【请求-响应】的交互模式。
2. HTTP发展
版本 | 产生时间 | 内容 |
---|---|---|
HTTP/0.9 | 1991年 | 不涉及数据包传输;规定客户端和服务器之间通信格式;只能GET请求 |
HTTP/1.0 | 1996年 | 传输内容不限制;增加PUT、PATCH、HEAD、OPTIONS、DELETE命令 |
HTTP/1.1 | 1997年 | 持久连接(长连接);节约带宽;HOST域;管道机制;分块传输编码 |
HTTP/2 | 2015年 | 多路复用;服务器推送;头信息压缩;二进制协议等 |
3. HTTP特点
- 无状态:协议对客户端没有状态存储,数据包的发送、传输和接收都是相互独立的。比如访问一个网站需要反复进行登录操作。
- 无连接:HTTP/1.1之前,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。通信双方都不长久的维持对方的任何信息。
- 基于请求响应:由客户端发起请求,服务端响应
- 通信使用明文(未被加密过的原始数据)
- 请求和响应不会对通信方进行确认,无法保护数据的完整性
- 简单快速、灵活
三、HTTP请求
1. HTTP请求
客户端发起的请求叫HTTP请求。
2. HTTP请求方法
属于HTTP协议的一部分,用来表明对服务器上的资源执行的何种操作。
3. HTTP请求消息/报文
客户端发出的消息数据叫HTTP请求消息/HTTP请求报文。
由【请求行、请求头、空行、请求体】4部分组成。
1)请求头用来描述客户端的基本信息,把客户端相关信息告知服务器。常见的请求头部字段如下:
2)空行用来分隔开请求头和请求体。
3)请求体用来存放通过POST方式提交到服务器的数据。所以只有POST请求有请求体。
四、HTTP响应
1. HTTP响应
服务器返回的响应叫HTTP响应。
2. HTTP响应消息/报文
服务器响应给客户端的消息内容叫HTTP响应消息/HTTP响应报文。
由【状态行、响应头、空行、响应体】4部分组成。
1)响应头用来描述服务器的基本信息。常见的响应头部字段如下:
2)空行用来分隔开响应头和响应体。
3)响应体用来存放服务器响应给客户端的资源内容。
3. HTTP响应状态码
属于HTTP协议的一部分,用来标识响应的状态。浏览器根据服务器返回的响应状态码就能知道HTTP请求的结果成功/失败。
分类 | 分类描述 |
---|---|
1** | 信息。服务器收到请求,需要请求者继续执行操作 |
2** | 成功。操作被成功接收并处理 |
3** | 重定向。需要进一步的操作以完成请求 |
4** | 客户端错误。请求包含语法错误或无法完成请求 |
5** | 服务器错误。服务器在处理请求的过程中发生了错误 |
具体如下:
五、HTTPS
1. HTTP存在问题
- 通信使用明文,内容可能被窃听。【防窃听】
- 不验证通信方身份,有可能遭遇伪装。【防伪装】
- 无法证明报文的完整性,有可能已遭篡改。【防篡改】
2. HTTPS
- HTTPS = HTTP + SSL/TLS
- 在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密;同时用HTTP通信,对加密后的数据进行传输。
- HTTPS主要目的是提供对网站服务器的身份认证,确认网站的真实性;同时保护交换数据的隐私和完整性。
SSL的全称是Secure Sockets Layer,即安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。最新的版本是3.0。
TLS的全称是Transport Layer Security,即安全传输层协议,建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。
3. HTTPS与HTTP的区别
![](https://i-blog.csdnimg.cn/blog_migrate/d9a905acc31e0a06a9ef7c18c97b3009.png)
- HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。
- HTTP 是超文本传输协议,信息是明文传输;HTTPS 则是具有安全性的 SSL 加密传输协议。
- HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。