关于HTTP协议你真的懂了吗

410 阅读4分钟

超文本传输协议,基于TCP/IP通信协议来传递数据(客户端与服务器可以指定适合的mime-type类型来指定数据,设置contentType告诉浏览器发送给服务器数据的格式,设置dataType表示期望收到服务器返回数据的格式)。

工作原理

HTTP协议工作在客户端-服务器架构上。浏览器作为客户端通过URL向HTTP服务器即WEB服务器发送所有请求。WEB服务器接收到请求后,向客户端发送响应信息。

HTTP特点

支持client/server模式

简单快速灵活

无连接

无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端应答,就断开连接。

无状态

无状态是指协议对于事务处理没有记忆能力,这意味着如果后续处理需要前面的信息,则必须全部重传,这样可能导致每次连接传送的数据量增大

请求数据信息

请求信息通常包括以下格式:请求行请求头部空行请求数据


响应数据格式

响应数据包括状态行消息报文空行响应正文


HTTP请求的方式

九种请求的方式:GETPOSTHEADPUTDELETECONNECTOPTIONSTRACEPATCH

序号方法主要用途
1GET请求获取资源,常用于读取数据
2POST常用于提交数据
3PUT常用于修改数据
4DELETE常用于删除指定资源
5HEAD可以获取服务器响应头信息,常用于查看服务器性能
6OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求,常用于查看服务器的性能
7TRACE回响服务器收到的请求信息,常用于HTTP请求的测试或诊断
8CONNECT将连接改为管道方式的代理服务器,常用于SSL加密服务器的链接和非加密的HTTP代理服务器的通信
9PATCH对PUT方法的补充,常用常用于对已知资源进行局部更新

相关补充

GET和POST的区别:

相同:使用同一个传输层协议(HTTP协议)

区别:

区别GETPOST
后退按钮/刷新无害数据会被重新提交
缓存能被缓存不能缓存
编码类型application/x-www-form-urlencodedapplication/x-www-form-urlencoded或multipart/form-data
数据类型限制只允许ASCII字符没有限制
历史参数保存在浏览器历史中参数不会保存在浏览器历史中
数据长度2-4KB,根据浏览器和服务器不同而变化无限制
安全性与POST相比,GET的安全性较差,因为所发送的数据是URL的一部分POST比GET更安全,因为请求的参数不会保存在浏览器历史或者WEB服务器中
可见性数据在URL中对所有人都是可见的数据不会显示在URL中

POST比GET速度慢:因为POST请求在第三次握手的时候,回发送请求头,服务器收到并返回100响应时,浏览器才会发送数据。

HTTP和HTTPS

http存在问题

  • 请求信息明文传输,容易被窃听截取
  • 数据的完整性未校验,容易被篡改
  • 没有验证对方身份,存在冒充危险

为了解决上面问题,https就闪亮登场了

https

https协议:HTTP+SSL/TLS,通过SSL证书来校验服务器的身份,并未服务器与浏览器之间的通信进行加密。

HTTPS传输数据的流程

  1. 客户端通过URL访问服务器建立SSL连接
  2. 服务器收到客户端请求后,将网站支持的证书信息(证书以及公钥)发送给客户端
  3. 客户端的服务器协商SSL连接的安全等级,也就是信息加密的等级
  4. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,利用服务器提供的公钥加密,发送给服务器
  5. 服务器利用自己的私钥解密出会话秘钥
  6. 服务器利用会话秘钥加密与客户端之间的通信

https的缺点

  • https协议多次握手,导致页面的加载时间延长近50%
  • https连接缓存不如http高效,会增加数据开销和功耗
  • 申请SSL证书需要钱,功能越强大的证书费用越高
  • SSL涉及到的安全算法会消耗CPU资源,对服务器资源比较大

HTTP与HTTPS主要区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。