HTTP协议与HTTPS协议详解

本文深入探讨了HTTP协议的特性和版本,包括HTTP1.0、1.1、2.0及3.0的主要区别。重点阐述了HTTP的工作流程、报文结构,以及状态码和头部信息。同时,文章详细介绍了HTTPS协议,分析了HTTP的风险,解释了SSL/TLS加密技术以及混合加密方法,确保数据安全。最后,讨论了数字证书和数字签名在身份验证和完整性保护中的作用。
摘要由CSDN通过智能技术生成

超文本传输协议(HTTP)

HTTP客户端发起请求,创建一个到服务器指定端口(默认是80端口)的TCP连接

HTTP服务器在这个端口监听客户端的请求,一旦收到请求,服务器会向客户端返回一个状态及返回的内容(请求的文件、错误消息…)

特点

  • 无状态保存

    不保留之前的请求或响应报文

  • 可靠传输

版本

HTTP1.0

  • 短连接

    每个连接只发送一个请求,发送数据完毕,连接关闭,要请求其他资源需要建立新连接

HTTP1.1

  • 长连接

    连接默认不关闭,一次TCP连接可以建立多请求

    Connection: keep-alive

  • 管道机制

    在同一个TCP连接里,可以发送多个请求

  • 新方法

    PUT、DELETE、PATCH、OPTIONS

问题:

  • 头部数据过大(http无状态导致)

  • 数据明文传输不安全

  • 队头阻塞

    前一个请求处理完毕才能处理下一个请求

  • 服务器不能发起请求

HTTP2.0

  • 压缩头部数据

    客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,只发送索引号

  • 服务端推送

    服务端可以发起请求

  • 多路复用

    一个连接里,客户端和服务端可以发起多次请求和回应

  • 二进制传输

    头部信息和数据体以帧形式传输(头信息帧、数据帧)

问题:

  • TCP以及TCP+TLS建立连接的延迟

  • 队头阻塞

    TCP中,丢包重传,仍导致队头阻塞

HTTP3.0

  • 解决队头阻塞

    基于UDP解决队头阻塞,基于QUIC保证数据可靠性

  • 快速握手

  • 多路复用

工作流程

  1. 客户与服务器建立连接
  2. 客户向服务器提出请求
  3. 服务器接收请求并响应
  4. 释放TCP链接
  5. 客户端解析HTML内容

报文结构

报文

起始行(start line)(请求行/状态行)(request line/status line)

请求方法

HTTP设计的本意是令不同的请求方法表达不同的语义,但实际使用中不同方法的具体作用看的是后端接口的实现

即:GET请求也可以在body中传递信息,也可以用作删除数据

</
方法名 作用 特点
GET 获取数据 1.通常利用url传参,body为空
2.主动缓存(从内存中获取响应数据)
3.通过点击url链接、设置html标签中的url触发
4.回退无害、可添加书签
POST 传输数据 1.参数通常写在body中
2.回退刷新
3.请求时,先发送header,响应100,再发送body,响应200
两次请求的时间差很小,有助于验证数据的完整性
PUT 传输文件
DELETE 删除数据
HEAD 只返回响应报头
CONNECT 预留给能够将连接改为管道方式的代理服务器
OPTIONS 查看服务器的性能
TRACE 回显服务器收到的请求
PATCH 更新资源
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值