TCP和UDP的区别?HTTP和HTTPS的区别?GET和POST的区别?

TCP与UDP的对比

 

特性

TCPUDP
连接方式面向连接无连接
可靠性提供可靠数据传输不保证数据的可靠性
数据传输顺序保证数据顺序到达不保证数据的顺序性
流量控制支持流量控制和拥塞控制不支持流量控制
头部开销20字节8字节
适用场景文件传输、网页浏览视频通话、在线游戏

三次握手

流程

假设客户端(Client)要和服务器(Server)建立连接

  1. 第一次握手 (SYN): Client -> Server: 客户端发送一个SYN报文段,表示请求建立连接

  2. 第二次握手 (SYN + ACK): Server -> Client: 服务端在接收到客户端的请求后,如果同意连接,服务端会向客户端发送一个SYN+ACK报文段,表示同意建立连接

  3. 第三次握手 (ACK): Client -> Server: 客户端接收到服务端的响应,最后发送一个ACK响应,表示连接建立完成

四次挥手

流程

  1. FIN浏览器发送 FIN 包,表示数据发送完毕,请求关闭连接。

  2. ACK服务器回复 ACK 包,表示同意关闭。

  3. FIN服务器也发送 FIN 包,表示自己的数据也发送完毕。

  4. ACK浏览器回复 ACK 包,确认关闭。等待一段时间后,双方连接正式关闭。

HTTP 和 HTTPS 的区别

特性HTTPHTTPS
默认端口80443
安全性明文传输,数据未加密,容易被窃听、篡改和冒充加密传输,数据经过加密,安全性高,防止窃听和篡改
协议层应用层协议在 HTTP 和 TCP 之间加入了 SSL/TLS 安全子层
工作方式直接与 TCP 通信先与 SSL/TLS 通信,再由 SSL/TLS 与 TCP 通信
证书不需要数字证书需要向 CA (证书颁发机构) 申请数字证书,用于验证服务器身份
性能无加密解密开销,速度较快有加密解密和密钥交换开销,速度稍慢 (但现代硬件优化后差距很小)

核心差异

  • HTTP:是无连接状态的协议,HTTP 直接建立在 TCP(传输控制协议)之上。HTTP 消息通过 TCP 连接直接以明文形式发送。每次请求都需要建立新的 TCP 连接, 请求结束后连接会关闭。客户端直接发送 HTTP 请求给服务器, 如果服务器可用, 就返回 HTTP 响应, 过程简单快速。

  • HTTPS:需要先建立 SSL/TLS 安全连接, 再封装 HTTP 请求。客户端要验证服务器的数字证书和签名 CA, 确保服务器合法后, 通过“SSL 握手”协商加密算法, 建立安全连接。连接建立后才会发送 HTTPS 请求。请求结束也不会关闭连接, 能够复用连接。

安全性

  • HTTP

    • 明文传输:发送和接收的数据都是以原始文本的形式传输。

  • HTTPS

    • 加密传输:发送数据前,SSL/TLS 协议会先对数据进行加密,使数据变成一堆乱码

    • 数据安全性:SSL/TLS提供完整性校验,确保数据在传输过程中没有被篡改,若被篡改,接收方会发现并丢弃数据包

    • 身份认证:验证连接的服务器是与其声称的服务器一致

SSL/TLS协议

工作流程:

  1. 握手

    • 客户端连接到服务器端口

    • 双方协商使用加密算法

    • 服务器将其数字证书发送给客户端以证明其身份。证书包含服务器的公钥

    • 客户端验证证书是否合法有效

    • 验证通过后,客户端生成一个预主密钥,并用服务器的公钥加密后发送给服务器

    • 服务器用自己的私钥解密得到预主密钥

    • 双方根据预主密钥独立计算出相同的会话密钥

  2. 加密通信

    • 握手完成后,双方使用协商好的会话密钥进行对称加密来加密和解密实际传输的 HTTP 数据

    • 之所以使用对称加密,是因为它的计算开销比非对称加密小得多,更适合大量数据的加密

GET和POST的区别

特性GETPOST
语义获取数据提交数据
参数位置通过URL传递参数请求体
参数可见性明文显示在URL中隐藏在请求体中
数据长度受限(URL长度限制,通常2KB-8KB)理论上无限制
缓存如果请求的是静态资源,会被缓存通常不被缓存
浏览器历史保留参数不保留请求体参数
安全性较低(参数暴露)相对较高
幂等性幂等(多次执行结果相同)非幂等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值