HTTP
# HTTP
# HTTP 特点
- 灵活可扩展
- 语义上的自由:只规定了基本格式,比如空格分隔单词,换行分隔字段,其他的各部分没有严格的语法限制
- 传输形式的多样性:可传输文本、图片、视频等
- 可靠传输
- HTTP 基于 TCP/IP,因此把这一特性继承了下来
- 请求-应答
- 无状态
# HTTP 状态码
# HTTPS
- 为什么有了 HTTP 还要 HTTPS?
因为
http
协议的数据都是明文进行传输的,所以对于一些敏感信息的传输就很不安全,https
就是为了解决http
的不安全而生的。
- HTTPS 是如何保证安全的?
对称加密:即通信的双方都使用同一个秘钥进行加解密,比如特务接头的暗号,就属于对称加密。
优点:简单、速度快、性能好 缺点:容易被黑客拦截
非对称加密:公钥 + 私钥 = 秘钥对,用私钥加密的数据只有对应的公钥才能解密,用公钥加密的数据只有对应的私钥才能解密,在通信之前都会把自己的公钥给对方,然后对方再拿着这个公钥来加密数据响应给对方,等到到了对方那里,对方再用自己的私钥进行解密。
优点:安全性高 缺点:速度慢、性能较差
结合两种加密方式,将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方就可以使用对称加密来进行沟通。
- HTTP 的 keep-alive 是干什么的?
在 http 请求头中加入 Connection: keep-alive 来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。
keep-alive 的优点:
- 较少的 CPU 和内存的使用(由于同时打开的连接的减少了)
- 允许请求和应答的 HTTP 管线化
- 降低拥塞控制( TCP 连接减少了)
- 减少了后续请求的延迟(无需再进行握手)
- 报告错误无需关闭 TCP 连接