计算机网络应用层详解
2024年1月1日
应用层
一、HTTP
- 状态码
- 200类 表示:服务端正常处理客户端的请求
- 200:成功,通常body会有数据
- 204:也是成功,但是没有body数据
- 206:文件断点续传
- 300类 表示:客户端请求的资源发生了变动,需要用新的url重新发送请求获取资源。
- 301:永久重定向。浏览器会记录新的url,下次会自动跳转。
- 302:临时重定向。要到新的url请求资源,但这不是永久的,还会更改。
- 304:表示资源请求成功,在本地浏览器缓存就有这个资源。
- 400类 表示:客户端请求报文有误,服务端无法处理。
- 400:请求报文有错误,是一个笼统的错误。
- 403:请求的资源权限不够。
- 404:请求的资源不存在。
- 500类 表示:客户端请求报文正确,但是服务端内部处理发生错误。
- 500:服务器程序错误
- 501:服务端不具备完成请求的功能,可能是无法识别这个请求方法
- 502:服务器作为网关层(nginx)返回的错误码,表示网关服务器正常,但是访问后端服务器错误。
- 503:服务器很忙,无法响应。也就是网络正忙
- 504:服务器作为网关,但是没有及时收到上游服务器的请求
- 版本差异
http 1.0 1. 明文传输 2. 默认短链接 | http 1.1 1. 明文传输 2. 默认长连接 3. 无法并发传输 | http 2.0 1. 基于https,基于tls1.2(rsa算法,2RTT) 握手。 2. 引入stream,复用tcp连接能并发传输。 3. 头部压缩,hpack算法压缩http报文的头部 4. 明文传输改为二进制格式,提高传输效率 5. 支持服务器主动推送资源。 | http 3.0 1. 基于udp协议,并在应用层实现可靠机制。用tls1.3(rcdhe算法,1RTT)握手 2. udp协议解决tcp的对头阻塞问题 3. 只要3次握手就可以完成3tcp+4tls的过程。 4. 网络切换不需要重新建立连接,在应用层通过连接id来维护,而不是tcp4元组 |
|---|---|---|---|
| 二、HTTPS |
- TLS握手 - RSA算法


CA 签发证书的过程,如上图左边部分:
- 首先 CA 会把持有者的公钥、用途、颁发者、有效时间等信息打成一个包,然后对这些信息进行 Hash 计算,得到一个 Hash 值;
- 然后 CA 会使用自己的私钥将该 Hash 值加密,生成 Certificate Signature,也就是 CA 对证书做了签名;
- 最后将 Certificate Signature 添加在文件证书上,形成数字证书;
客户端校验服务端的数字证书的过程,如上图右边部分:
- 首先客户端会使用同样的 Hash 算法获取该证书的 Hash 值 H1;
- 通常浏览器和操作系统中集成了 CA 的公钥信息,浏览器收到证书后可以使用 CA 的公钥解密 Certificate Signature 内容,得到一个 Hash 值 H2 ;
- 最后比较 H1 和 H2,如果值相同,则为可信赖的证书,否则则认为证书不可信。
三、HTTP 状态维护
- JWT
[该类型的内容暂不支持下载]
四、ngnix
- 正向代理、反向代理
- **正向代理:**代理客户端,相当于客户端是第三方身份,服务器不知道真实的客户端。
- **反向代理:**代理服务端,相当于服务器是第三方身份,客户端不知道真实的服务器。

- 负载均衡算法