【知识体系 - 网络协议】- HTTP协议

134 阅读3分钟

HTTP

  • HTTP是属于应用层协议,主要解决数据包装。
  • HTTP协议是建立在TCP协议之上的。当浏览器需要从服务器获取网页数据时,会发出一次HTTP请求。HTTP会通过TCP建立起一个到服务器的连接通道。当本次请求完成后,HTTP会根据长短连接判断是否断开TCP。

HTTP与HTTPS的区别

HTTP

HTTP是一种 超文本传输协议(Hypertext Transfer Protocol),是计算机在两点之间传输文本、图片、音频、视频等超文本数据的约定和规范。

HTTP主要内容分为 超文本(Hypertext)传输(Transfer)协议(Protocol)

  • 超文本:表名不单单是文本,还可以是图片、视频等数据
  • 传输:数据需要经过一系列的物理介质,从一个算系统传送到另一个端系统的过程。
  • 协议:网络中传递、管理信息的规范(网络协议)

说到HTTP,就必须提一嘴 TCP/IP 协议。因为在浏览器和服务器之间经过 DNS寻址建立TCP连接后,才会进行HTTP通信。

关于TCP/IP协议的技术知识点,参考:【知识体系 - 网络协议】- TCP/IP协议 - 掘金 (juejin.cn)

区别

  • 表现形式:HTTP以 http:// 开头;而HTTPS以 https:// 开头
  • 默认端口:HTTP默认端口是 80;HTTPS默认端口是 443
  • 安全性:HTTP未经安全加密协议,传输过程易被攻击;HTTP是HTTP+TLS/SSL组合而成的,经过一系列算法(密钥交换/签名/对称加密/摘要)

GET与POST请求的区别

GET和POST是HTTP协议中常用的两个方法。

除了这两个方法之外,还有HEAD/PUT/DELETE/CONNECT/OPTION这六个请求方法。

区别

  • 安全性
    • GET 发送的数据作为URL的一部分,且所有人可见,所以不安全
    • POST 发送的数据在HTTP请求体中,且URL上不可见,所以相对安全
  • 数据长度
    • 由于URL的长度是受限制的(max-length:2048个字符),所以GET发动的数据受长度限制,POST不受限制。

HTTP常见状态码

五种类型

分类分类描述
1xx指示信息 - 表示请求正在处理
2xx成功 - 表示请求已被成功处理
3xx重定向 - 要完成的请求需要附加操作
4xx客户端错误 - 请求有语法错误或请求无法实现,服务器无法处理请求
5xx服务器端错误 - 服务器处理请求出现错误

HTTP的长连接和短连接

也是TCP协议的长连接和短连接

  • 短连接:HTTP/1.0 默认使用。客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断。(也称 无状态连接
  • 长连接:HTTP/1.1 默认使用。保持客户端和服务器 TCP的连接,当再一次通信时,依旧使用这一条已经建立好的连接。需要在响应头上加入 Connection:keep-alive。但是这个连接也不是永远不断,会有一个保持时间。