协议
HTTP/1.0和HTTP1.1支持的方法
方法 | 说明 | 支持的HTTP协议版本 |
---|---|---|
GET | 获取资源 | 1.0/1.1 |
POST | 传输实体主体 | 1.0/1.1 |
PUT | 传输文件 | 1.0/1.1 |
HEAD | 获得报文首部 | 1.0/1.1 |
DELETE | 删除文件 | 1.0/1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRANCE | 追踪路径 | 1.1 |
CONNECT | 要求用隧道协议连接代理 | 1.1 |
状态码的类别
状态码 | 类别 | 原因 |
---|---|---|
1XX | Infomational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirect(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务错误状态码) | 服务器处理请求出错 |
HTTP的不足
- 通信使用明文(未加密),内容可能被窃听
- 不验证通信方的身份,因此可能被伪装
- 无法证明报文的完整性,可能被篡改
HTTPS是HTTP通信接口的部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替的协议。(TLS协议是SSL协议的升级版本,HTTPS=HTTP+TLS/SSL)
HTTP协议 | HTTPS协议 |
---|---|
应用层(HTTP……) | 应用层(HTTP……) |
TLS/SSL | |
TCP | TCP |
IP | IP |
WebSocket
WebSocket是建立在单个TCP连接上的全双工通信协议,浏览器和客户端只需完成一次握手(通过HTTP/1.1 协议的101状态码)就可以创建持久性连接,并进行双向数据传递。(浏览器向服务器发送一次请求后,服务器可持续向浏览器发送数据,不需要客户端再发送一次请求,从而实现推送技术)
1 | General |
1 | Request Headers |
1 | Response Headers |
注:
① 单工通信,半双工通信和全双工通信
- 单工通信:一方固定为发送方,另一方固定为接收方。数据只能在一个方向上传输,即发送端发送,接收端接收。
- 半双工通信:数据允许在两个方向上传输,但同一时间内在两个方向上不能同时传输。
- 全双工通信:数据允许在两个方向上传输,同一时间内在两个方向上能同时传输(即可发送又可接收)。
② 推送技术:
- (短)轮询:浏览器每隔时间T给服务器发送一次请求,服务器接收请求后立即将数据发送给浏览器并关闭连接。
- 长轮询:浏览器给服务器发送一次请求,在时间T内,若服务器内容更新则立即返回给浏览器,否则,服务器会阻塞时间T,在这段时间内,若有更新,则立即返回数据给浏览器,若无更新,则时间T后关闭连接。浏览器处理完数据后,再次向服务器发送请求。
比较:(短)轮询在浏览器停留一段时间,消息交互的实时性较低,数据反馈效率较低;长轮询在服务器停留一段时间,服务器阻塞时浪费资源。