HTTP与HTTPS

HTTP和HTTPS的区别

http协议是应用层的协议,它是对Tcp协议的一个应用。

  • HTTP协议以明文的方式在网络中传播数据,而HTTPS协议传输的数据则是经过加密后的,HTTPS具有更高的安全性;
  • HTTPS是在TCP三次握手之后,实际数据传输开始前,还需要进行SSL(安全套接层)的handshake,协议加密使用的是对称加密密钥
  • HTTPS协议需要服务端申请证书,浏览器安装相应的证书;
  • HTTP的端口是80,HTTPS的端口是443

HTTPS协议加密的过程

:SSL是传输层的协议

  • HTTPS包含非对称加密和对称加密两个阶段,在客户端与服务器建立连接的时候使用非对称加密连接建立以后使用的是对称加密

  1. 客户使用http的URL访问web服务器,要与web服务器建立ssl连接
  2. web服务器接收到服务端请求后,会将网站的公钥传送一份给客户端,私钥自己保存
  3. 客户端的浏览器根据双方同意的安全等级,生成对称加密使用的密钥,称为会话密钥,然后利用网站的公钥将会话加密,并传送给网站;
  4. web服务器利用自己的私钥解密出会话密钥
  5. web服务器利用会话密钥加密与客户端之间的通信,这个过程是对称加密的过程,服务器第一次传给客户端的公钥其实是CA对网站信息进行加密的数字证书。

区分短连接和长连接

  • 短连接:一次http请求服务器应答之后就将这个连接断开。(即同一客户如果要在发送一个HTTP请求的话,必须与服务器建立一个新的TCP连接,同一客户的多个连续的HTTP请求不能共用一个TCP连接)
  • 长连接:多个http请求可以共用同一个连接。(编程上稍复杂一些,但性能提高,减少负荷,缩短了时间)

HTTP的报头结构

请求报头

请添加图片描述

应答报头

请添加图片描述

HTTP的请求方法

请添加图片描述
Get和Post的区别

  • 功能不同,post是向服务器发送数据,get是向服务器获取数据
  • 过程不同,get在浏览器回退时是无害的,但是post会再次提交请求
  • 底层记忆方法不同:get会产生一个TCP数据包,而post方法产生两个数据包,get会把header和data一起发送出去服务器,服务器响应回来200的状态码, 然而post方法会先发送header,服务器响应100的状态码,再发送data,服务器响应200的状态码。
  • 并且研究表明:在网络较好的环境下,我们发送一次数据包和发送两次数据包的时间大致相同,但是网络不好的情况下,两次TCP包对于校验数据的完整性有很大的作用;并且并不是所有的浏览器在处理这个post请求的时候都会进行两次的发包,火狐浏览器就不是

应答状态码

在这里插入图片描述

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值