http的一些概念记录📝

80 阅读3分钟

(HyperText Transfer Protocol)超文本传输协议

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

所谓“超文本”,就是“超越了普通文本的文本”,它是文字、图片、音频和视频等的混合体,最关键的是含有“超链接”,能够从一个“超文本”跳跃到另一个“超文本”,形成复杂的非线性、网状的结构关系。

HTTP 是一个"传输协议",但它不关心寻址、路由、数据完整性等传输细节,而要求这些工作都由下层来处理。

HTTP 协议就运行在了 TCP/IP 上。

协议栈

应用层 → 消息或报文(message)

Telnet、SSH、FTP、SMTP、HTTP

传输层 → 段(segment)

TCP (Transmission Control Protocol) / UDP

基于 IP 协议提供可靠的、字节流形式的通信,是 HTTP 协议得以实现的基础。

网际层 → 包(packet)

IP (Internet Protocol)

解决寻址和路由问题,以及如何在两点间传送数据包

标识计算机

链路层 → 帧(frame)

在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次

使用 MAC 地址(Media Access Control Address)来唯一标识一个网卡也就同时标识此网卡所属的设备

OSI 七层模型

开放式系统互联通信参考模型 (Open System Interconnection Reference Model)

  1. 第一层:物理层,网络的物理形式,例如电缆、光纤、网卡、集线器等等;
  2. 第二层:数据链路层,它基本相当于 TCP/IP 的链接层;
  3. 第三层:网络层,相当于 TCP/IP 里的网际层;
  4. 第四层:传输层,相当于 TCP/IP 里的传输层;
  5. 第五层:会话层,维护网络中的连接状态,即保持会话和同步;
  6. 第六层:表示层,把数据转换为合适、可理解的语法和语义;
  7. 第七层:应用层,面向具体的应用传输数据。

DNS (Domain Name System)

域名用“.”分隔成多个单词,级别从左到右逐级升高,最右边的被称为“顶级域名”

域名做一个转换,“映射”到它的真实 IP,这就是所谓的“域名解析”

域名解析过程:浏览器缓存->操作系统缓存->hosts->dns

URI / URL

协议名 + 主机名(域名) + 路径

URI(Uniform Resource Identifier) 统一资源标识符

URL (Uniform Resource Locator) 统一资源定位符

HTTPS

相当于 HTTP+SSL/TLS+TCP/IP

SSL (Secure Socket Layer)

TLS (Transport Layer Security)

代理

HTTP传输过程中的中转站,可以实现缓存加速、负载均衡、内容缓存、安全防护、数据处理等功能

代理种类:

  1. 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器;
  2. 透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端;
  3. 正向代理:靠近客户端,代表客户端向服务器发送请求;
  4. 反向代理:靠近服务器端,代表服务器响应客户端的请求;