HTTP和HTTPS知识点总结

71 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

1.HTTP 协议相关知识

1.1HTTP 协议

  • HTTP 协议出现背景

    • 第一个大规模使用的http协议版本是0.9,1991年开始大规模使用
  • HTTP 协议是什么

    • http超文本传输协议(Hypertext Transfer Protocol)
    • 超文本:图片音乐视频
  • HTTP协议的特点:简单快速,灵活,易于扩展

    • 缺点:无状态:对事务处理没有记忆能力,无法支持需要连续多个步骤的事务操作;明文传输,不安全

1.2HTTP 协议里面有什么

HTTP报文分为请求报文和相应报文。请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。响应报文基本由协议版本、状态码和原因短语,以及可选的响应首部字段和实体主体构成。

  • 请求行,状态行——first line

    • 方法名(get,post,put,head),URL,协议版本

      • 状态码
  • 请求头/响应头:使用kv形式更详细地说明报文

  • 请求提/响应体:实际传输的数据

image.png

1.3请求流程

输入网址到网页显示经历了什么?

  • DNS服务器会先网址进行映射,找到地址,然后HTTP 客户端进程在 80 端口发起一个到服务器 的 TCP 连接(80 端口是 HTTP 的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。
  • HTTP 客户端通过它的套接字向服务器发送一个 HTTP 请求报文。
  • HTTP服务器会通过他的套接字接受该报文,进行请求解析,并且在磁盘中找到页面对象,将检索对象进行封装到HTTP响应报文之中,通过套接字向用户发送。
  • HTTP 服务器等待用户接受完响应报文之后,随即通知 客户端 断开 TCP 连接
  • HTTP客户端从响应中提取报文,检查该HTML文件,循环检查
  • HTTP客户端渲染资源

1.4不足与展望

  • http1:队头阻塞,传输效率低,明文传输不安全
  • http2:多路复用,头部压缩,二进制协议。主要修改了HTTP的报文传输格式,通过引入二进制分帧层实现性能的提升。
  • quic:基于UDP实现,解决队头阻塞,加密减少握手次数,支持快速启动
  • HTTPS

HTTPS

HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL

2.1 工作流程

1、客户端请求 HTTPS 请求并连接到服务器的 443 端口,此过程和请求 HTTP 请求一样,进行三次握手;

2、服务端向客户端发送数字证书,其中包含公钥、证书颁发者、到期日期

现比较流行的加解密码对,即公钥和私钥。公钥用于加密,私钥用于解密。所以服务端会保留私钥,然后发送公钥给客户端。

3、客户端收到证书,会验证证书的有效性。验证通过后会生成一个随机的 pre-master key。再将密钥通过接收到的公钥加密然后发送给服务端

4、服务端接收后使用私钥进行解密得到 pre-master key

5、获得 pre-master key 后,服务器和客户端可以使用主密钥进行通信。

2.2 加密

HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。

  • 在交换密钥环节使用公开密钥加密方式
  • 之后的建立通信交换报文阶段则使用共享密钥加密方式。

使用由数字证书认证机构(CA,CertificateAuthority)和其相关机关颁发的公开密钥证书。

img

2.3 HTTP 与 HTTPS 区别

所以在回答 HTTP 与 HTTPS 的区别的问题,可以从下面几个方面进行回答:

  • 加密: HTTPS 是 HTTP 协议的更加安全的版本,通过使用SSL/TLS进行加密传输的数据;
  • 连接方式: HTTP(三次握手)和 HTTPS (三次握手+数字证书)连接方式不一样;
  • 端口: HTTP 默认的端口是 80和 HTTPS 默认端口是 443

参考文献

  1. 面试问题: HTTP 与 HTTPS 的区别
  2. 看完这篇HTTP,跟面试官扯皮就没问题了
  3. [图解HTTP与HTTPS》的干货1.2w字【绝对保值】]((juejin.cn/post/690051…)
  4. 状态码