web-http协议与https协议
http协议
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。
http协议运行简要流程
1.在客户端输入URL
2.客户端向DNS服务器发送解析请求,解析URL中域名所对应的ip地址
3.得到ip地址后,再根据地址与默认端口(80),和服务器建立TCP连接
4.客户端发出读取文件的http请求给服务器
5.服务器接受请求后作出响应,并把改所请求的html文本送回给客户端
6.释放TCP连接
7.客户端解析并且显示html文本内容
在wireshark中对访问一个http网页进行抓包,可追踪http流查看该请求与响应的相关
访问http://hcl.baidu.com/ .
http的请求方法
GET #最常使用
POST #提交信息
HEAD
PUT
TRACE
OPTIONS
DELETE
CONNECT
请求报文格式
响应报文格式
在http中,数据传输都是明文的,内容可能会被窃听,同时无法证明报文的完整性,可能遭到篡改,也无法验证通信方的身份。
于是就产生了更安全的https协议。
https协议
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。
在https下传输的数据包是这样的:
均为密文传输,大大提高了安全性。
https协议中,主要包含了对称加密和非对称加密与数字签名。
在当下,普遍都是使用混合加密,来结合对称加密和非对称加密的优点,再通过引入证书机制等来完善其中的漏洞。
混合加密的大概流程:
1.客户端向服务器发送tls版本,可选的机密套件以及自己生成的第1个随机数。
2.服务端进行打招呼回复,回复自己支持的tls版本以及选择的加密套件并且生成自己生成第2个随机数来发送给客户端。
3.紧接着服务端发送自己的证书和公钥,并告知发送完成。
4.客户端检查证书(数字签名检查),没问题则生成随机数(预主密钥),再通过刚刚的公钥加密发送给服务端。
5.服务端通过自己的私钥解开刚刚加密过的预主密钥
6.客户端和服务端都通过第1随机数和第2随机数和预主密钥来生成会话密钥,且之后都通过这个会话密钥进行加密 。
7.之后都可以安全的使用会话密钥进行对称加密。
8.服务端若要与其他客户端进行联系,则产生的会话密钥是不同的。
总结
相比 HTTP 协议,HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全。建议多多使用https协议进行数据传输,保护安全。
标签:协议,http,web,https,加密,服务端,客户端 From: https://www.cnblogs.com/lllxin/p/18001142