HTTP 概念

Oct 20 · 1 min

#前言

这个系列是笔者在看了 图解HTTP小林coding 之后写的文章,用来记录网络相关知识点,来对抗“遗忘”的系列文章。

#HTTP 介绍

HTTP 是超文本传输协议,也就是 HyperText Transfer Protocol

那么什么是超文本传输协议

  1. 「协议」
    HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范(两个以上的参与者),以及相关的各种控制和错误处理方式(行为约定和规范)。

  2. 「传输」
    所谓的「传输」,很好理解,就是把一堆东西从 A 点搬到 B 点,或者从 B 点 搬到 A 点。
    HTTP 协议是一个双向协议。我们在上网冲浪时,浏览器是请求方 A ,百度网站就是应答方 B。双方约定用 HTTP 协议来通信,于是浏览器把请求数据发送给网站,网站再把一些数据返回给浏览器,最后由浏览器渲染在屏幕,就可以看到图片、视频了。

  3. 「超文本」
    HTTP 传输的内容是「超文本」。HTML 就是最常见的超文本了,它本身只是纯文字文件,但内部用很多标签定义了图片、视频等的链接,在经过浏览器的解释,呈现给我们的就是一个文字、有画面的网页了。

#HTTP 的优点

特点:无连接、无状态、灵活、简单快速

  • 无连接:每一次请求都要连接一次,请求结束就会断掉,不会保持连接
  • 无状态:每一次请求都是独立的,请求结束不会记录连接的任何信息,减少了网络开销,这是优点也是缺点
  • 灵活:通过 http 协议中头部的 Content-Type 标记,可以传输任意数据类型的数据对象(文本、图片、视频等等),非常灵活
  • 简单快速:发送请求访问某个资源时,只需传送请求方法和URL就可以了,使用简单,正由于 http 协议简单,使得 http 服务器的程序规模小,因而通信速度很快

#HTTP 的缺点

缺点:无状态、不安全、明文传输、队头阻塞

  • 无状态:请求不会记录任何连接信息,没有记忆,就无法区分多个请求发起者身份是不是同一个客户端的,意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大
  • 不安全:明文传输可能被窃听不安全,缺少身份认证也可能遭遇伪装,还有缺少报文完整性验证可能遭到篡改
  • 明文传输:报文(header 部分)使用的是明文,直接将信息暴露给了外界,WIFI 陷阱就是复用明文传输的特点,诱导你连上热点,然后疯狂抓取你的流量,从而拿到你的敏感信息
  • 队头阻塞:开启长连接时,只建立一个 TCP 连接,同一时刻只能处理一个请求,那么当请求耗时过长时,其他请求就只能阻塞状态