HTTP和HTTPS TCP协议

148 阅读5分钟

看到HTTP就会想到,什么是HTTP呢?

、HTTP称为超文本网络协议,简称HTTP协议,就是网络通信的一种协议,那什么是通信呢?什么是通信协议呢?

1.通信包含通信主体、通信内容、通信方式 2.通信协议:就是客户端与服务端规定约定好的规则 3.HTTP协议:就是客户都与服务端之间进行网页内容传输时遵守的传输格式

、HTTP交互的模型 1.客户端向服务端发起请求 2.服务端向客户端响应内容

、HTTP的请求报文和响应报文组成部分

1.请求行 2.请求头 3.空行 4.请求体

1.响应行 2.响应头 3.空行 4.响应体

、HTTP和HTTPS区别

我们了解到了HTTP,那HTTPS又是干嘛的呢,为什么需要它?我们知道HTTP在网络中的数据都是明文传输,很不安全,这时候就需要HTTPS,在HTTP基础上进行加密,比较安全, 需要HTTPS就必须知道对称加密和非对称加密,那什么是对称加密呢,对称加密就是客户端与服务端互相规定好密钥,双方用密钥加密解密进行数据的传输,相对来说安全性比较高,算法可以破解的话,成本比较高,我们需要知道的是,虽然密钥加密之后,数据很难破解,但是双方第一次约定密钥的时候,是需要传输密钥的,密钥难免会被截取,非常的不安全 这个时候就需要非对称加密,那什么是非对称加密呢,非对称加密会有一个公钥和私钥,也就是两把钥匙,我们服务器会把公钥传送给浏览器,私钥自己拿,然后浏览器会用公钥加密数据发送给服务器,服务器收到后会用自己的私钥解密数据,所以这个过程会很安全,但是缺点就是非对称加密数据传输比较大的数据会很慢,解密过程很慢,成本会比较高,那如何解决这个问题呢?上面提到过对称加密,对称加密互相有私钥解密速度非常快,这个时候就可以用非对称加密和对称加密相互配合,我们先用非对称加密的公钥加密对称加密的密钥,这个时候双方都有密钥,就可以进行数据的传输了,那我们就会想了,万一公钥被截泄露怎么办,这个大家可以放心,服务器一般都是响应数字证书给浏览器的,数字证书包含了公钥、网址等信息,而数字证书是由CA权威机构认证颁发的,安全性很高,那大家又会想了,那证书被篡改了怎么办,这不得不提到数字签名了,什么是数字签名呢?数字签名是由证书内容生成的唯一标识,大家可以认为是像身份证一样,唯一的,如果证书被篡改了,内容再次生成唯一标识的时候,和之前的唯一标识不一样,就知道被篡改了,当然这个会有维护检测的,如果被修改立马会被知道的,这个就解决了我们数据传输加密的安全

、TCP协议 我们上面谈到了HTTP协议,那就必须了解什么是TCP协议 简单的描述就是:TCP协议是HTTP协议的底层协议,安全可靠 这个过程的术语可能这样说:浏览器中输入XXX安全网址,到最后客户在浏览器看到的完整的页面,这个过程发生了什么事,做了什么处理(规范点说,简述一次完整的HTTP服务的过程,底层就是TCP协议) 我们来看看有哪些过程 1.输入网址后,需要进行DNS解析,得到IP地址,为什么要DNS解析呢,DNS就是域名,域名就是一个好听好记的一个名字,而IP相当于身份证,属于唯一的标识,所以,要根据IP找服务器 ,它们之间就是一种映射关系, 2.根据IP找到服务器,开始与服务器建立连接,称为三次握手,等下我们会详细描述, 3.浏览器发送HTTP请求,服务器响应数据,比如说 响应XXX.html 4.浏览器解析XXX.html,加载XXX.html 的css js 等资源 5.浏览器完成页面的解析渲染 6.HTTP传输完成,释放关闭连接,四次挥手

、三次握手 1.浏览器向服务器发起建立连接的请求,想建立连接 2.服务器收到浏览器想要建立连接的信息和响应给浏览器同意建立连接并且询问浏览器确定要建立连接吗 3.浏览器收到信息,开始建立连接 第二点大家可能会问了,为什么不直接建立连接,还要那么啰嗦询问确定建立连接吗,这一步不是多余的, 举个例子,假如浏览器发起建立连接的请求后,因为网速等原因,服务器很久才接收到消息,接到信息后回复给浏览器,但是浏览器看到服务器那么久不回复信息,不知道什么原因不响应,不想等了,不想建立连接了,就消失了,而服务器又不知道浏览器还在不在,这里就需要询问一次确定连接吗,如果不问,浏览器又不在了,直接打开连接,一直开着会造成服务器资源的浪费,所以,这个询问是否确定连接必不可少。

、四次挥手 1.浏览器和服务器双方其中一方发起断开连接的信息,假设浏览器要断开连接 2.服务器收到浏览器断开连接信息后,需要等一下,服务器检查数据是否传输完毕 3.服务器确认数据传输完毕后,响应浏览器可以断开连接 4。浏览器确认收到信息后,服务器会立马断开连接,但是浏览器还会等一下在断开(默认)