http、https笔记

目录

HTTP 基本概念

状态码:

1xx 中间状态,比如post的continue

200 OK是最常⻅的成功状态码

3xx 重定向

4xx 客户端发送的报⽂有误

5xx 服务器处理时内部发⽣了错误

get和post的区别:

1、get获取数据,post改教据

2、get把请求在url上,不安全,post在http包内,安全

3、get数据最大2k,post无限制

4、get产生一个TCP包(header+data ),返回200

post产生两个TCP包(1、header返回100continue,2、data返回200 )

5.get会被缓存,post不会

6、get是幂等,post不是幂等的(get不能对数据进行修改,网络不好会多次重试)

http 常⻅字段:

Host 字段:指定服务器的域名

Content-Length 字段:本次服务器回应的数据⻓度是 1000 个字节

Connection 字段:要求服务器使⽤ TCP 持久连接,以便其他请求复⽤

Content-Type 字段:数据是什么格式

Content-Encoding 字段:数据的压缩⽅法 gzip

http的缺点:

⽆状态:Cookie 技术

明⽂传输:引⼊ SSL/TLS 层

HTTP/1.1

⻓连接:只要任意⼀端没有明确提出断开连接,则保持 TCP 连接状态

管道⽹络传输:可在同⼀个 TCP 连接⾥⾯,客户端可以发起多个请求,只要第⼀个请求发出去了,不必等其回来,就可以发第⼆个请求出去,可以减少整体的响应时间。(按照顺序)

HTTP/3

把 HTTP 下层的 TCP 协议改成了 UDP!

QUIC 有⾃⼰的⼀套机制可以保证传输的可靠性的。当某个流发⽣丢包时,只会阻塞这个流,其他流不会受到

影响。

QUIC 是⼀个在 UDP 之上的伪 TCP + TLS + HTTP/2 的多路复⽤的协议。

HTTPS

窃听⻛险:混合加密的⽅式实现信息的机密性

篡改⻛险:摘要算法的⽅式来实现完整性,它能够为数据⽣成独⼀⽆⼆的「指纹」,指纹⽤于校验数据的完整性

冒充⻛险:将服务器公钥放⼊到数字证书中,解决了冒充的⻛险

HTTPS和HTTP区别

http 明文 80端口

https

密文 443端口

过程:

1、tcp三次握手

2、ca数字证书放入非对称密钥获取会话密钥,对称密钥进行加密会话

3、http只有tcp三次握手的三个包(快),https是12个包(3+9个的ssl包)(慢)

对称加密和⾮对称加密

对称加密只使⽤⼀个密钥,运算速度快,密钥必须保密,⽆法做到安全的密钥交换。

⾮对称加密使⽤两个密钥:公钥和私钥,公钥可以任意分发⽽私钥保密,解决了密钥交换问题但速度慢

⾮对称加密

1、client、sever交换随机数

2、sever发送证书

3、client 取CA的公钥,验证数字证书,取出服务器的公钥,用服务器公钥加密随机数( pre-master key ),随后根据client、sever随机数+随机数( pre-master key )来生成会话密钥

4、sever私钥解密随机数( pre-master key ),随后根据client、sever随机数+随机数( pre-master key )来生成会话密钥

相关推荐
韩曙亮13 小时前
【Flutter】iOS 网络权限设置 ② ( 配置 iOS 平台可使用 HTTP 访问 | ATS 网络安全强制规范 )
网络·flutter·http·ios·https·网络权限·ats
浩瀚地学15 小时前
【面试算法笔记】0106-数组-区间和
笔记·算法·面试
疯狂打码的少年1 天前
【软件工程】软件开发模型:增量模型与迭代模型
笔记·软件工程
Generalzy1 天前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
江华森1 天前
Web 开发基础:HTTP 与 REST
前端·网络协议·http
凉、介1 天前
Virtio 系列(一):框架概览
笔记·学习·嵌入式·虚拟化·virtio
Yang_jie_031 天前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
一杯奶茶¥1 天前
c语言程序设计大学期末考试考研知识点重点笔记题库复习资料C语言重点考点题库资料合集
c语言·笔记·考研·c语言程序设计·c语言笔记
依然范特东1 天前
动手学深度学习笔记--数据操作、线性代数
人工智能·笔记·深度学习
疯狂打码的少年1 天前
【软件工程】软件开发模型:敏捷开发(Scrum/XP)
笔记·软件工程·scrum·敏捷流程