分层结构
4层模型:(从上往下)
* 应用层 (HTTP,FTP)
* 传输层 (TCP, UDP)
* 网络层 (IP)
* 链路层 (ARP)
返回结果的HTTP状态码
2XX 成功
- 200
OK 请求成功 - 204
No Content,请求成功,但没有资源返回 - 206
Partial Content,范围请求,响应中包含由Content-range指定范围的实体内容
3XX 重定向
- 301 永久重定向
响应的location头部字段包含新的uri - 302 临时重定向
- 303 See Other
请求的资源存在另一个URI,应使用GET
方法定向或者请求的资源 - 304 Not Modified
服务器资源未改变,可使用客户端未过期的缓存
4XX 客户端错误
- 400 Bad request
请求报文中存在语法错误 - 401 Unauthorized
发送的请求需要通过HTTP认证(Basic, DIGEST)的信息。若之前已经进行过一次请求,表示用户认证失败 - 403 Forbidden
请求资源的访问被服务器拒绝了 - 404 Not Found
服务器上没有请求的资源
5XX 服务器错误
- 500 Internal Server Error
服务器在执行请求时发生错误 - 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 |
加密
非对称加密:公开密钥,私有密钥。
用公开密钥加密,用私有密钥解密;杜绝了对称加密中分发密钥的风险
认证
basic认证 基本认证
a. 返回状态码401告知客户端需要进行认证 b. 用户id和密码以 <id>:<pwd> 进行base64编码后,设置到HTTP头Authorization字段 c. 认证成功则返回200以及请求资源的内容
DIGEST认证 摘要认证
使用质询/响应方式 一方先发送认证要求给另一方, 接着使用从另一方接收到的质询码计算生成响应码 最后将响应吗返还给对方进行认证的方式
SSL客户端认证
FormBase认证 基于表单认证