HTTP/HTTPS

协议

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

状态码的类别

状态码类别原因
1XXInfomational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirect(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务错误状态码)服务器处理请求出错

HTTP的不足

  • 通信使用明文(未加密),内容可能被窃听
  • 不验证通信方的身份,因此可能被伪装
  • 无法证明报文的完整性,可能被篡改

HTTPS是HTTP通信接口的部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替的协议。(TLS协议是SSL协议的升级版本,HTTPS=HTTP+TLS/SSL)

HTTP协议HTTPS协议
应用层(HTTP……)应用层(HTTP……)
TLS/SSL
TCPTCP
IPIP

WebSocket
WebSocket是建立在单个TCP连接上的全双工通信协议,浏览器和客户端只需完成一次握手(通过HTTP/1.1 协议的101状态码)就可以创建持久性连接,并进行双向数据传递。(浏览器向服务器发送一次请求后,服务器可持续向浏览器发送数据,不需要客户端再发送一次请求,从而实现推送技术)

1
2
3
4
5
General

Request URL: wss://xxx.xxx
Request Method: GET
Status Code: 101 Switching Protocols
1
2
3
4
5
6
7
8
Request Headers

Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: Rrkhh4LFOuc6el6wfcMWrA==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Connection: Upgrade
Upgrade: websocket
1
2
3
4
5
Response Headers

Connection: Upgrade
Sec-WebSocket-Accept: oh+JqcmoUPIGBlt2QH3lH5uur1E=
Upgrade: websocket

注:
① 单工通信,半双工通信和全双工通信

  • 单工通信:一方固定为发送方,另一方固定为接收方。数据只能在一个方向上传输,即发送端发送,接收端接收。
  • 半双工通信:数据允许在两个方向上传输,但同一时间内在两个方向上不能同时传输。
  • 全双工通信:数据允许在两个方向上传输,同一时间内在两个方向上能同时传输(即可发送又可接收)。

② 推送技术:

  • (短)轮询:浏览器每隔时间T给服务器发送一次请求,服务器接收请求后立即将数据发送给浏览器并关闭连接。
  • 长轮询:浏览器给服务器发送一次请求,在时间T内,若服务器内容更新则立即返回给浏览器,否则,服务器会阻塞时间T,在这段时间内,若有更新,则立即返回数据给浏览器,若无更新,则时间T后关闭连接。浏览器处理完数据后,再次向服务器发送请求。
    比较:(短)轮询在浏览器停留一段时间,消息交互的实时性较低,数据反馈效率较低;长轮询在服务器停留一段时间,服务器阻塞时浪费资源。