协议-http协议-基础概念01-发展历程-http组成-http是什么-相关的应用-相关的协议

news2025/2/22 14:30:49

发展历程-http组成-http是什么-相关的应用-相关的协议

参考来源:
极客时间-透视HTTP协议(作者:罗剑锋);

01-HTTP的发展历程

1989 年,任职于欧洲核子研究中心(CERN)的蒂姆·伯纳斯 - 李(Tim Berners-Lee)发
表了一篇论文,提出了在互联网上构建超链接文档系统的构想。这篇论文中他确立了三项关
键技术

  1. URI:即统一资源标识符,作为互联网上资源的唯一身份;
  2. HTML:即超文本标记语言,描述超文本文档;
  3. HTTP:即超文本传输协议,用来传输超文本

HTTP/1.0 版本在 1996 年正式发布。
它在多方面增强了 0.9 版,形式上已经和我们现在的 HTTP 差别不大了,例如:

  1. 增加了 HEAD、POST 等新方法;
  2. 增加了响应状态码,标记可能的错误原因;
  3. 引入了协议版本号概念;
  4. 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活;
  5. 传输的数据不再仅限于文本。

但 HTTP/1.0 并不是一个“标准”,只是记录已有实践和模式的一份参考文档,不具有实际
的约束力,相当于一个“备忘录”。

1999 年,HTTP/1.1 发布了 RFC 文档,编号为 2616,正式确立了延续十余年的传
奇。

  1. 增加了 PUT、DELETE 等新的方法;
  2. 增加了缓存管理和控制;
  3. 明确了连接管理,允许持久连接;
  4. 允许响应数据分块(chunked),利于传输大文件;
  5. 强制要求 Host 头,让互联网主机托管成为可能。
    不过由于 HTTP/1.1 太过庞大和复杂,所以在 2014 年又做了一次修订,原来的一个大文档
    被拆分成了六份较小的文档,编号为 7230-7235,优化了一些细节,但此外没有任何实质
    性的改动。

在 2015 年发布了 HTTP/2
RFC 编号 7540。
HTTP/2 的制定充分考虑了现今互联网的现状:宽带、移动、不安全,在高度兼容
HTTP/1.1 的同时在性能改善方面做了很大努力,主要的特点有:

  1. 二进制协议,不再是纯文本;
  2. 可发起多个请求,废弃了 1.1 里的管道;
  3. 使用专用算法压缩头部,减少数据传输量;
  4. 允许服务器主动向客户端推送数据;
  5. 增强了安全性,“事实上”要求加密通信。

2018 年,互联网标准化组织 IETF 提议将“HTTP over QUIC”更名
为“HTTP/3”并获得批准

02-http(超文本传输协议)的组成

协议
第一点,协议必须要有两个或多个参与者,也就是“协”。
第二点,协议是对参与者的一种行为约定和规范,也就是“议”。
协议意味着有多个参与者为了达成某个共同的目的而站在了一起,除了要无疑义地沟通交流
之外,还必须明确地规定各方的“责、权、利”,约定该做什么不该做什么,先做什么后做
什么,做错了怎么办,有没有补救措施等等。

传输
第一点,HTTP 协议是一个“双向协议”。
有两个最基本的参与者 A 和 B,从 A 开始到 B 结束,数据在 A 和 B 之间双向
而不是单向流动。通常我们把先发起传输动作的 A 叫做请求方,把后接到传输的 B 叫做应
答方或者响应方
第二点,数据虽然是在 A 和 B 之间传输,但并没有限制只有 A 和 B 这两个角色,允许中
间有“中转”或者“接力”

这样,传输方式就从“A<===>B”,变成了“A<=>X<=>Y<=>Z<=>B”,A 到 B 的
传输过程中可以存在任意多个“中间人”,而这些中间人也都遵从 HTTP 协议,只要不打
扰基本的数据传输,就可以添加任意的额外功能,例如安全认证、数据压缩、编码转换等
等,优化整个传输过程。

超文本
所谓“文本”(Text),就表示 HTTP 传输的不是 TCP/UDP 这些底层协议里被切分的杂
乱无章的二进制包(datagram),而是完整的、有意义的数据,可以被浏览器、服务器这
样的上层应用程序处理。
所谓“超文本”,就是“超越了普通文本的文本”,它是文字、图片、音频和视频等的混合
,最关键的是含有“超链接”,能够从一个“超文本”跳跃到另一个“超文本”,形成复
杂的非线性、网状的结构关系。

03-http是什么

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

它不是浏览器、手机 APP 那样的应用程序,也不是 Windows、Linux 那样的操作系统,更不是 Apache、Nginx、Tomcat 那样的 Web 服务器

HTTP 不是 HTML,单论次数,在互联网上
HTTP 传输最多的可能就是 HTML,但要是论数据量,HTML 可能要往后排了,图片、音频、视频这些类型的资源显然更大。

HTTP 不是一个孤立的协议
在互联网世界里,HTTP 通常跑在 TCP/IP 协议栈之上,依靠 IP 协议实现寻址和路由、TCP
协议实现可靠数据传输、DNS 协议实现域名查找、SSL/TLS 协议实现安全通信。此外,还
有一些协议依赖于 HTTP,例如 WebSocket、HTTPDNS 等。这些协议相互交织,构成了
一个协议网,而 HTTP 则处于中心地位。

04-与HTTP相关的各种应用

在这里插入图片描述
CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用
了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。

05-各种HTTP相关协议

在这里插入图片描述

代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为“中转站”,既可以
转发客户端的请求,也可以转发服务器的应答。
代理有很多的种类,常见的有:

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

由于代理在传输过程中插入了一个“中间层”,所以可以在这个环节做很多有意思的事情,
比如:
5. 负载均衡:把访问请求均匀分散到多台机器,实现访问集群化;
6. 内容缓存:暂存上下行的数据,减轻后端的压力;
7. 安全防护:隐匿 IP, 使用 WAF 等工具抵御网络攻击,保护被代理的机器;
8. 数据处理:提供压缩、加密等额外的功能。
URI(Uniform Resource Identifier),中文名称是 统一资源标识符,使用
它就能够唯一地标记互联网上资源。

URI 另一个更常用的表现形式是 URL(Uniform Resource Locator), 统一资源定位
,也就是我们俗称的“网址”,它实际上是 URI 的一个子集,不过因为这两者几乎是相
同的,差异不大,所以通常不会做严格的区分。

你可以看到,URI 主要有三个基本的部分构成

  1. 协议名:即访问该资源应当使用的协议,在这里是“http”;
  2. 主机名:即互联网上主机的标记,可以是域名或 IP 地址,在这里是“nginx.org”;
  3. 路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里是“/en/download.html”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端架构: 脚手架命令行交互核心实现之inquirer和readline的应用教程

命令行交互核心实现 核心目标&#xff1a;实现命令行行交互&#xff0c;如List命令行的交互呢比命令行的渲难度要更大&#xff0c;因为它涉及的技术点会会更多它涉及以下技术点 键盘输入的一个监听 (这里通过 readline来实现)计算命令行窗口的尺寸清屏光标的移动输出流的静默 …

Unity的相机跟随和第三人称视角

Unity相机跟随和第三人称视角 介绍镜头视角跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 思路跟随人物方向进行旋转的镜头视角固定球和人的镜头视角 镜头旋转代码人物移动的参考代码注意 介绍 最近足球项目的镜头在做改动&#xff0c;观察了一下实况足球的视角&#x…

3-1openflow协议原理以及应用(packet包广播风暴)实践

在Mininet中&#xff0c;其自带的控制器是采用是OpenFlow 1.0版本。因此如果在开发中使用mininet内置的控制器&#xff08;使用端口6653&#xff09;&#xff0c;即使拓扑构建和ovs自定义时声明使用openflow13&#xff0c;但是由于采用的控制器版本受限&#xff0c;ovs与控制器…

RV32/64 特权架构 - 特权模式与指令

RV32/64 特权架构 - 特权模式与指令 1 特权模式2 特权指令2.1 mret&#xff08;从机器模式返回到先前的模式&#xff09;2.2 sret&#xff08;从监管模式返回到先前的模式&#xff09;2.3 wfi&#xff08;等待中断&#xff09;2.4 sfence.vma&#xff08;内存屏障&#xff09; …

深度学习 精选笔记(5)多层感知机

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…

在Ubuntu22.04 LTS上搭建Kubernetes集群

文章目录 准备工作系统准备软件包准备主机和IP地址准备 安装步骤安装前准备关闭防火墙设置服务器时区关闭 swap 分区关闭SELinux配置hosts配置文件转发 IPv4 并让 iptables 看到桥接流量 安装容器运行时安装Kubernetes配置并安装apt包初始化集群 安装calico网络插件部署应用 本…

iSH使用与优化全网整合教程【持续更新】【精华】

【最后一次更新:2023.4.​​​​​22】 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任&#xff5e; iSH介绍与换源【已安装并已完成…

香港紧缺13个专业人才有哪些?香港优才计划人才清单解读!

香港紧缺13个专业人才有哪些&#xff1f;香港优才计划人才清单解读&#xff01; 香港优才计划是香港的一项人才引进政策&#xff0c;目的是吸纳优秀人才来港发展定居&#xff0c;提高香港的国际竞争力。因此&#xff0c;香港优才跟香港紧缺行业息息相关。 如果是从事香港紧缺行…

Docker 常用操作命令备忘

Docker 一旦设置好了环境&#xff0c;日常就只要使用简单命令就可以运行和停止。 于是&#xff0c;我每次用的时候&#xff0c;都想不起来一些关键性的命令到底怎么用&#xff0c;特此记录。 一、镜像管理 从公有仓库拉取镜像 &#xff08;对于使用苹果电脑 M1/M2/M3 芯片的 …

Rust调用同级目录中的rs文件和调用下级目录中的rs文件

一、Rust调用同级目录中的rs文件 Rust新建工程demo02&#xff0c;src文件夹下面新建test.rs文件&#xff0c;这样main.rs文件与它属于同级目录中。 关键点&#xff1a;导入test文件和test文件中的Ellipse模块 mod test;//导入test模块&#xff08;文件&#xff09; use test…

Java学习--学生管理系统(残破版)

代码 Main.java import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {ArrayList<Student> list new ArrayList<>();loop:while (true) {System.out.println("-----欢迎来到阿宝院校学生管理系…

一拎即走的轻薄云台投影,极米投影仪Z7X让生活幸福加倍

随着家用智能投影性能的不断升级&#xff0c;拥有便携、易用、护眼以及大屏等优势的智能投影仪已经逐步取代传统电视机&#xff0c;成为越来越多年轻人在租房、装修新家购置新电器时的第一选择。市面上的投影仪产品多如牛毛&#xff0c;对于刚接触投影仪的新手来说&#xff0c;…

iMazing2024汉化免费版苹果设备管理软件功能详解

一、软件简介 iMazing&#xff0c;被誉为Mac和PC上最佳的iOS设备管理软件&#xff0c;以其全面而细致的功能&#xff0c;赢得了全球苹果用户的喜爱。无论是备份恢复、文件传输还是设备管理&#xff0c;iMazing都能提供高效、安全、便捷的服务体验。 iMazing3Mac-最新绿色安装包…

全面升级!Apache HugeGraph 1.2.0版本发布

图数据库以独特的数据管理和分析能力&#xff0c;在企业数智化转型的过程中正在成为数据治理的核心&#xff0c;根据IDC调研显示&#xff0c;95%的企业认为图数据库是重要的数据管理工具&#xff0c;超过65%的厂商认为在业务上图数据库优于其他选择&#xff0c;尤其是在金融风控…

2024 值得推荐的免费开源 WAF

WAF 是 Web Application Firewall 的缩写&#xff0c;也被称为 Web 应用防火墙。区别于传统防火墙&#xff0c;WAF 工作在应用层&#xff0c;对基于 HTTP/HTTPS 协议的 Web 系统有着更好的防护效果&#xff0c;使其免于受到黑客的攻击。 开源 WAF 和商用 WAF&#xff08;奇安信…

气体反应瓶适用光伏光电半导体坚固耐用PFA缓冲瓶

PFA冲击瓶&#xff0c;别名特氟龙缓冲瓶、可溶性聚四氟乙烯气体反应瓶。用于气体、固体或液体间的反应实验&#xff0c;广泛应用于光电、新材料、新能源、半导体、地矿、冶金、核工业等行业。 PFA冲击瓶相对于其他材质的反应瓶&#xff0c;不易碎&#xff0c;使用更加安全&…

星瑞格新篇:SinoDB V16.8启幕,技术盛宴

喜讯传来&#xff0c;令人心悦&#xff01;SinoDB V16.8版&#xff0c;如春风之翩翩&#xff0c;向众用户及开发者扬帆起航。此版相关技术&#xff0c;均于星瑞格社区(https://forum.sinoregal.cn/ )说明&#xff0c;社区之主页&#xff0c;设“试用活动”栏&#xff0c;以聚众…

【亚马逊云】跨AWS账号创建复制规则同步S3存储桶中的数据

文章目录 注意事项一、创建存储桶【创建方&接收方完成操作】二、上传数据至bucket-transmit待同步测试三、创建复制规则【创建方完成操作】四、接收复制的对象【接收方完成操作】五、创建复制任务【创建方操作】六、运行批处理操作【创建方完成操作】七、检查是否完成跨账号…

使用ffmpeg压缩视频

一、到ffmpeg官网下载文件包&#xff1a; Download FFmpeg 下载后找到 bin 下的3个exe文件&#xff0c;复制到自己本机的某个目录下, 如&#xff1a; 二、使用命令行压缩&#xff1a; ffmpeg -i input.mp4 -c:v libx265 -crf 28 -y output.mp4 这条命令使用 FFmpeg 工具对输…

【Pytorch深度学习开发实践学习】Pytorch实现LeNet神经网络(1)

1.model.py import torch.nn as nn import torch.nn.functional as F引入pytorch的两个模块 关于这两个模块的作用&#xff0c;可以参考下面 Pytorch官方文档 torch.nn包含了构成计算图的基本模块 torch,nn.function包括了计算图中的各种主要函数&#xff0c;包括&#…