论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
HTTP超文本传输协议详解
HTTP超文本传输协议详解
傲渊山岳
金牌会员
|
2022-6-25 16:32:10
|
显示全部楼层
|
阅读模式
楼主
主题
696
|
帖子
696
|
积分
2088
HTTP、 HTTPS、 HTTP/1.1、HTTP/2、HTTP/3
HTTP协议中最重要的知识就是TLS四次握手协议,涉及RSA和ECDHA两种混合加密算法
一、HTTP的知识
1.HTTP是什么?
答:
HTTP 是⼀个应用层里专⻔在「两点」之间「传输」⽂字、图⽚、⾳频、视频等「超⽂本」数据的「约定和
规范」。
两点:客户端和服务端,服务端和服务端
2.HTTP的请求方式
1)GET:请求从服务器获取资源(浏览网页)
2)POST:向URL指定的资源提交数据(文章留言)
请求报文和响应报文格式
URL:资源的路径
请求首部:
HOST:客户端发送请求时,⽤来指定服务器的域名。
Connection: ⽤于客户端要求服务器使⽤ TCP 持久连接,以便其他请求复⽤。
Accept:客户端请求的时候,可以使⽤ Accept 字段声明⾃⼰可以接受哪些数据格式。
Accept-Encoding: 说明客户端可以接受哪些数据压缩⽅法。
响应首部:
Content-Length:服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据⻓度
Content-Type: ⽤于服务器回应时,告诉客户端,本次数据是什么格式。
Content-Encoding: 表示服务器返回的数据使⽤了什么压缩格式
3.HTTP的状态码
答:HTTP的状态码,是表示客户端和服务端之间通信的状态。正常或错误,错误的具体原因等。
4.HTTP的优缺点
1)HTTP的优点
答:
2)HTTP的缺点
答:
无状态、明文传输
无状态:
HTTP一次只处理一次请求,每次请求都要建立TCP连接。虽然这可以大大节约服务器资源,但对于需要登录账户的网页来说,每浏览一次网页就需要进行一次登录,非常繁琐。
为了解决HTTP的无状态缺点,在请求首部和响应首部加上Cookie信息,使得服务端能够记住当前客户端的状态,不需要频繁登录账户。
复制代码
明文传输:
信息不加密,容易被窃取。
二、HTTPS相对HTTP,有了什么改进?
答:在HTTP的基础上,加上了TLS安全传输协议,对传输报文进行加密。
重点是加密的原理(TLS安全传输协议)以及加密算法(DH、RAS、ECDHA)
复制代码
对称加密和非对称加密
对称加密:一把密钥,双方的密钥相同
非对称加密:两把密钥,服务器的私钥可以解开客户端利用公钥加密的报文。客户端的公钥可以解开服务端利用私钥加密的报文。
TLS协议的基本流程:先使用非对称加密生成会话秘钥,后续双方使用会话秘钥进行通信(对称加密)
客户端向服务器索要并验证服务器的公钥。
双⽅协商⽣产「会话秘钥」。
双⽅采⽤「会话秘钥」进⾏加密通信。
会话秘钥的生成,或者SSL/TLS 的「握⼿阶段」,涉及四次通信:
会话秘钥的生成,使用的加密算法有RSA算法、ECDHA算法。
RAS算法:不支持前向保密
具体握手过程参考
ECDHA算法:支持前向保密
具体握手过程参考
ECDHE算法相对RAS算法,使用相同bit位数的随机数,破解难度更大。
HTTPS的再优化:
三、HTTP/1.1相对HTTP,有了什么改进?
答:
优点是:
第一个是长连接,不需要像HTTP每发起一个请求,都要建立一次TCP连接。HTTP/1.1的长连接特点是,只要任意一端没有提出断开,保持TCP连接状态。
第二个是管道网络传输,客户端可以发起多个请求。
缺点是:
四、HTTP/2相对HTTP/1.1,有了什么改进?
答:
头部压缩:利用HPACK算法,客户端和服务器同时维护⼀张头信息表,所有字段都会存⼊这个表,⽣成⼀个索
引号,以后就不发送同样字段了,只发送索引号,这样就提⾼速度了
二进制格式:⽆需再将明⽂的报⽂转成⼆进制,⽽是直接解析⼆进制报⽂,这增加了数据传输的效率。
数据流( Stream ):每个请求或回应的所有数据包都标记着⼀个独⼀⽆⼆的编号,其中规定客户端发出的数据流编号为奇数, 服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级。优先级⾼的请求,服务器就先响应该请求。
多路复⽤:⼀个连接中并发多个请求或回应,⽽不⽤按照顺序⼀⼀对应。
移除了 HTTP/1.1 中的串⾏请求,不需要排队等待,也就不会再出现「队头阻塞」问题,降低了延迟,⼤幅度提⾼了连接的利⽤率。
服务器推送:改善了传统的「请求 - 应答」⼯作模式,服务不再是被动地响应,也可以主动向客户端发送消息。
五、HTTP/3相对HTTP/2,有了什么改进?
答:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
傲渊山岳
金牌会员
这个人很懒什么都没写!
楼主热帖
2022你不容错过的软件测试项目实战(we ...
K8S 性能优化 - K8S APIServer 调优 ...
2022年春节后这波疫情对于国内SAP咨询 ...
全球各类卫星遥感图像的下载方法汇总 ...
变量的定义和使用
gRPC之.Net6中的初步使用介绍
Java面向对象--接口和多态
kubernetes top查看内存CPU使用情况 ...
MySQL数据库-数据表
有效字母异位词
标签云
挺好的
服务器
快速回复
返回顶部
返回列表