第 6 章-应用层
应用层主要协议
HTTP
HTTP 即超文本传输协议的缩写,是计算机网络应用层中用于计算机之间传输文字、图片、音频、视频等多媒体信息的约定和规范。
可以工作在客户机和服务器之间,也可以工作在服务器和服务器之间。
五大类状态码
- 1xx,提示信息,表示目前处于协议处理的中间状态,还需要后续操作;
- 2xx,成功,报文到达并正确处理;(200、204、206)
[200 OK]:如果是非HEAD请求一般都会有body数据;[204 No Content]:没有body的成功请求;[206 Partial Content]:主要应用于 HTTP 分块或者断点续传,表示返回的数据只是一部分,并不全;
- 3xx,重定向,资源位置有变动,需要客户机重新发送请求;(301、302、304)
[301 Moved Permanently]:永久重定向,资源已不存在,需要客户端使用新的 url 请求;[302 Found]:临时重定向,表示资源还在,但临时需要用别的 url 请求;301和302都会在Location字段指明重定向的新 url 浏览器会自动跳转;[304 Not Modified]:不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,用于缓存控制;
- 4xx,客户端错误,请求有误,服务器无法处理;(400、403、404)
[400 Bad Request]:请求报文有误;(不知道哪里有误,反正有误)[403 Forbidden]:服务器禁止访问该资源;[404 Not Found]:请求资源在服务器未找到;
- 5xx,服务端错误,服务器在处理请求时发生内部错误;(500、501、502、503)
[500 Internal Server Error]:表示服务器发生错误;(不知道哪里错了,反正是错了)[501 Not Implemented]:表示所请求的功能尚未实现;(尽请期待)[502 Bad Gateway]:服务器作为网关或代理时返回的错误码,表示服务器自身工作正常,访问后端服务器发生了错误;(后端访问后端的后端时发生错误)[503 Service Unavailable]:服务器忙,稍后再试;
报文字段
- [起始行]
[GET|POST|PUT|DELETE|OPTIONS|TRACE|CONNECT|HEAD] [URL] [HTTP_VERSION]一般最常用的是GET和POST方法,其他了解即可。
- [请求头]
Host:指定访问域名;Connection:User-agent:Accept-language:Content-Length:回应的报文长度;
未完待续。。。
HTTPS
由于 HTTP 协议一般是明文传输,所以很容易被攻击者窃取信息或者篡改信息。所以 HTTPS 应运而生, HTTPS = HTTP + SSL/TLS ,即在 HTTP 的基础上添加了身份认证和传输加密的 SSL/TLS 层,保证了传输过程的安全性。
HTTPS 协议相比 HTTP 只有协议名和端口号的差别, HTTPS 的默认端口号是 443 。而其安全性的保证其实是有 TLS/SSL 提供的。
TLS/SSL
TLS(Transport Layer Security) 是 SSL(Secure Socket Layer) 的后续版本,是用于计算机之间身份认证和加密的一种协议。这个协议是一个独立的协议,除了 HTTPS 还有其他协议可以使用这个协议,比如 SMTP 电子邮件协议、 Telnet 远程登陆协议。直到现在 TLS 发布了 1.1 、 1.2 、 1.3 三个版本。
TLS 由
- 记录协议
- 握手协议
- 警告协议
- 变更密码规范协议
- 扩展协议
等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等密码学技术。
为了满足身份认证的要求, TLS 使用非对称加密技术,私钥拥有方可以用自己的私钥对数据进行加密,公钥发布出去,公钥的拥有者可以用公钥去解密数据,将解密的结果和随消息发来的 hashcode 一起验证消息确实是私钥拥有者发出的。
虽然私钥是私有的,但公钥是谁都可以发布的,所以引入了 CA 即 Certificate Authority ,证书认证机构,为发布的公钥提供认证,解决公钥的信任问题。
证书申请人在自己的电脑生成一对密钥对,并将公钥和自己的私人信息打包成 CSR 文件,把这份文件交给 CA 机构,用 CA 机构的私钥进行签名,把签名后的证书发回给申请人,于是申请人就可以拿着这个证书去发布自己的公钥了。这样便保证了公钥发布的安全性。