读书笔记之【HTTP图解】

分层结构

4层模型:(从上往下)

* 应用层 (HTTP,FTP)
* 传输层 (TCP, UDP)
* 网络层  (IP)
* 链路层  (ARP)

返回结果的HTTP状态码

2XX 成功

  1. 200
    OK 请求成功
  2. 204
    No Content,请求成功,但没有资源返回
  3. 206
    Partial Content,范围请求,响应中包含由Content-range指定范围的实体内容

3XX 重定向

  1. 301 永久重定向
    响应的location头部字段包含新的uri
  2. 302 临时重定向
  3. 303 See Other
    请求的资源存在另一个URI,应使用GET方法定向或者请求的资源
  4. 304 Not Modified
    服务器资源未改变,可使用客户端未过期的缓存

4XX 客户端错误

  1. 400 Bad request
    请求报文中存在语法错误
  2. 401 Unauthorized
    发送的请求需要通过HTTP认证(Basic, DIGEST)的信息。若之前已经进行过一次请求,表示用户认证失败
  3. 403 Forbidden
    请求资源的访问被服务器拒绝了
  4. 404 Not Found
    服务器上没有请求的资源

5XX 服务器错误

  1. 500 Internal Server Error
    服务器在执行请求时发生错误
  2. 503 Service Unavailable
    服务器暂时处于超负荷或正在停机维护

URI和URL

URI: Uniform Resource Identifier 统一资源标识符
URL: Uniform Resource Locator 统一资源定位符
URL是URI的子集

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

SSL: Secure Socket Layer,独立于HTTP协议。
TLS: Transport Layer Security 

HTTP直接和TCP通信
当使用SSL时,则变成先和SSL通信,再由SSL和TCP通信。
HTTPS就是身披SSL协议外壳的HTTP

|          |    | 应用HTTP  |
|:--------:|:--:|:--------:|
| 应用HTTP  | => |    SSL   |
|    TCP   |    |    TCP   |
|    IP    |    |    IP    |


加密
非对称加密:公开密钥,私有密钥。
    用公开密钥加密,用私有密钥解密;杜绝了对称加密中分发密钥的风险

认证

  1. basic认证 基本认证

    a. 返回状态码401告知客户端需要进行认证
    b. 用户id和密码以 <id>:<pwd> 进行base64编码后,设置到HTTP头Authorization字段
    c. 认证成功则返回200以及请求资源的内容
  2. DIGEST认证 摘要认证

    使用质询/响应方式
    一方先发送认证要求给另一方,  
    接着使用从另一方接收到的质询码计算生成响应码  
    最后将响应吗返还给对方进行认证的方式
  3. SSL客户端认证

  4. FormBase认证 基于表单认证