Http协议学习总结

本文深入探讨Http协议,从网络基础开始,包括TCP/IP、IP、TCP和DNS协议的作用。接着,分析Http协议的无状态特性、请求方法以及报文解析。重点讲解了Http的不足,如明文通信、身份验证和完整性问题,并阐述了HTTPS如何通过加密、证书和完整性保护来解决这些问题,以确保Web安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Http协议

一、网络基础

如下图,Web使用一种名为Http(HyperText Transfer Protocol)超文本传输协议,完成从客户端到服务器端的一系列运行流程。

网络基础TCP/IP协议族

通常使用的网络是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。

TCP/IP的分层管理也是十分重要的一个机制。

发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息,反之,在接收端层与层之间传输数据时,每经过一层会把对应的首部消去。

 与HTTP关系密切的协议:IP、TCP和DNS

  • 负责传输的IP协议

 IP(Internet Protocol)网际协议位于网络层,IP协议的作用是把各种数据包传送给对方,而保证确实传送到对方需要满足很多条件,其中两个重要条件IP地址和MAC地址

具体的通信过程可参考下图

 其中传输路线的选择,就和ARP协议(Address Resolution Protocol)地址解析协议,根据通信双方的IP地址就可以反查出对应的MAC地址,和路由选择(routing)有关了。

  • 确保可靠性的TCP协议

 TCP协议位于传输层,提供可靠的字节流服务(是指,为了方便传输,将大块数据分割成以报文为单位的数据包进行管理)。

TCP协议使用的确认重传机制确保数据准确可靠的传输给对方,也就是三次握手与四次挥手

 

  • 负责域名解析的DNS协议

DNS(Domain Name System)和HTTP一样是位于应用层的协议,它提供域名到IP地址之间的解析服务

 

二、浅析http协议

Http请求报文

Http请求报文

HTTP是不保存状态的协议,即无状态协议,虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术

告知服务器意图的HTTP方法

GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT

三、http报文解析

参照

四、http状态码

五、确保Web安全的HTTPS

Http的不足之处

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信双方的身份,因此有可能遭遇伪装,Dos攻击
  • 无法证明报文的完整性,所以有可能已遭篡改

对于这三点不足之处,HTTP是如何处理的呢

通信加密

HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer 安全套阶层)或TLS(Transport Layer Security安全层传输协议)的组合使用,加密HTTP的通信内容。

使用证书机制

在公开密钥加密方式中也存在一些问题,那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换了。

为了解决上述问题,可以使用由数字证书认证机构(CA,Certificate Authority)和其他相关颁发的公开密钥证书。虽然HTTP协议无法确定通信方,但如果使用SSL则可以,SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。

证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。另外伪造证书从技术角度上来说是十分困难的一件事。

 

使用MD5和SHA-1等散列值校验

虽然Http有一定的确认报文完整性的方法,但并不是完美的,为了有效防止这些弊端,有必要使用HTTPS。

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

HTTPS并非是应用层的一种新协议,简单来说就是身披SSL外壳的HTTP

可以说SSL是当今世界上应用最为广泛的网络安全技术

参考博客:https://www.jianshu.com/p/5434780fea3a

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值