前端需要了解的一些 HTTP 基础概念

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 前端需要了解的一些 HTTP 基础概念

诞生

  • HTTP/0.9 只允许 GET,纯文本格式(无版本号,后追加为 0.9)
  • HTTP/1.0 (RFC1945,不是标准,只是参考文档)

    • 增加 HEAD、POST 等新方法
    • 增加响应状态码,标记可能的错误原因
    • 引入协议版本号概念
    • 引入 HTTP Header 概念,让 HTTP 处理请求和响应更加灵活
    • 传输的数据不再仅限于文本
  • HTTP/1.1 (RFC2616)

    • 增加了 PUT、DELETE 等新的方法
    • 增加了缓存管理和控制
    • 明确了连接管理,允许持久连接
    • 允许响应数据分块(chunked),利于传输大文件
    • 强制要求 Host 头,让互联网主机托管成为可能
  • HTTP/2 (RFC7540)
以 Google SPDY 协议为基础定制。HTTP/2 还衍生出了 gRPC 等新协议,但目前大多数网站仍在使用 HTTP/1.1
  • 二进制协议,不再是纯文本
  • 可发起多个请求,废弃了 1.1 的管道
  • 使用专用算法压缩头部,减少数据传输量
  • 允许服务器主动向客户端推送数据
  • 增强了安全性,“事实上”要求加密通信
  • HTTP/3
Google 推出的 QUIC 更名而来

HTTP 是什么

HyperText Transfer Protocol

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
  • 协议:使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式
  • 传输:双向协议,用来在两点之间传输数据的约定和规范
  • 超文本:文本广义为图片、音频、视频、甚至压缩包,超文本关键是超链接,形成杜查非线性、网状的结构关系。

HTTP 不是一个孤立的协议,通常泡在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP 协议实现可靠数据传输、DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。也有一些协议依赖于 HTTP,如 WebSocket、HTTPDNS 等。

HTTP 相关概念

代理

  • 匿名代理:完全隐匿了被代理的机器,外界看到的 只是代理服务器
  • 透明代理:传输过程中“透明开放”,外界既知道代理也知道客户端
  • 正向代理:靠近客户端,代表客户端向服务器发送请求
  • 方向代理:靠近服务器端,代表服务器响应客户端的请求

TCP/IP 网络分层模型

  • 链接层(link layer, MAC)
  • 网际层(Internet layer,IP)
  • 传输层(transport layer,TCP/UDP)
  • 应用层(application layer,Telnet、SSh、FTP、SMTP、HTTP)

OSI

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

  • 物理层,电缆、光纤、网卡、集线器等
  • 数据链路层,TCP/IP 的链接层
  • 网络层,TCP/IP 的网际层
  • 传输层, TCP/IP 的传输层
  • 会话层,维护网络中的连接状态,即保持会话和同步
  • 表示层,把数据准换位合适、可以理解的语法和语义
  • 应用层,面向具体的应用传输数据

域名

  • 形式:主机名[.二级域名].顶级域名
  • 域名解析
    DNS 核心系统是一个三层的树状、分布式服务,基本对应域名的结构:

    1. 根域名服务器(Root DNS Server):管理顶级域名服务器,返回 com、net、cn 等顶级域名服务器的 IP
    2. 顶级域名服务器(Top-level DNS Server):管理各自域名下的权威域名服务器,如 com 顶级域名服务器可以 返回 apple.com 域名服务器的 IP
    3. 权威域名服务器(Authoritative):管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP
  • DNS 缓存

    • 大公司、网络运营商的 DNS 服务器(非权威域名服务器),作为用户 DNS 查询的代理,代替用户访问核心 DNS 系统,离用户较近
    • 操作系统也会对 DNS 解析结果做缓存,操作系统还存在“主机映射”文件(hosts)
  • 域名应用

    • 重定向:域名不变, IP 任意变动
    • 名字空间:搭建内部 DNS 作为名字服务器,实现 blog.cellinlab.xyz 、api.cellinlab.xyz 等
    • 负载均衡:

      • 域名解析返回多个 IP
      • 域名解析配置内部策略,返回离客户端最近或当前服务最优的主机
    • 域名屏蔽:对域名不解析,返回错误,让用户无法拿到 IP,从而无法访问
    • 域名劫持(域名污染):访问 A,DNS 给用户 B 的 IP
  • 域名总长度限制在 253 字符内,一级域名不能超过 63 个字符
  • 域名是大小写无关的,但通常使用小写形式
相关文章
|
5月前
|
缓存 前端开发 JavaScript
第三章(概念篇) 微前端架构模式
第三章(概念篇) 微前端架构模式
116 0
|
9天前
|
存储 前端开发 JavaScript
前端必备知识:闭包的概念、作用与应用
前端必备知识:闭包的概念、作用与应用
12 1
|
4天前
|
存储 前端开发 NoSQL
拿下奇怪的前端报错(四):1比特丢失导致的音视频播放时长无限增长-浅析http分片传输核心和一个坑点
在一个使用MongoDB GridFS存储文件的项目中,音频和视频文件在大部分设备上播放时长显示为无限,而单独播放则正常。经调查发现,问题源于HTTP Range请求的处理不当,导致最后一个字节未被正确返回。通过调整请求参数,使JavaScript/MongoDB的操作范围与HTTP Range一致,最终解决了这一问题。此案例强调了对HTTP协议深入理解及跨系统集成时注意细节的重要性。
|
5天前
|
缓存 前端开发 安全
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
前端开发者必备:HTTP状态码含义与用途解析,常见错误码产生原因及解决策略
31 0
|
5天前
|
前端开发 JavaScript 程序员
【从前端入门到全栈】Node.js 之核心概念
【从前端入门到全栈】Node.js 之核心概念
|
9天前
|
前端开发 JavaScript Shell
深入解析前端构建利器:webpack核心概念与基本功能全览
深入解析前端构建利器:webpack核心概念与基本功能全览—
13 0
|
5月前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
136 0
|
2月前
|
前端开发 Java
【前端学java】全网最通俗易懂的JAVA抽象概念(07)
【8月更文挑战第9天】全网最通俗易懂的JAVA抽象概念
28 2
|
4月前
|
前端开发 计算机视觉
视觉智能开放平台操作报错合集之人脸对比1:1,采用web前端直接调用,使用了base64处理图片,提示http错误码414,该如何处理
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
4月前
|
编解码 自然语言处理 算法
技术心得:前端学HTTP之字符集
技术心得:前端学HTTP之字符集
33 0