HTTP_day01

news2024/11/15 15:48:45

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

HTTP 发展史

HTTP/0.9

结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。

开发者最初设想 系统中获得文档都是只读的。只允许使用 GET 方法来获取文档中的内容 ,并在响应请求后立即关闭连接。功能非常有限。

HTTP/1.0 (可有可无的参考文档)

1993 年,NCSA(美国国家超级计算应用中心)开发出了 Mosaic,是第一个可以图文混排的浏览器,随后又在 1995 年开发出了服务器软件 Apache,简化了 HTTP 服务器的搭建工作。

确立了大部分现在使用的技术,但它不是正式标准;

变更点 :

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

1995 年,网景的 Netscape Navigator 和微软的 Internet Explorer 开始了著名的“浏览器大战”,都希望在互联网上占据主导地位。

是目前互联网上使用最广泛的协议,功能也非常完善
变更点 :

  • 增加了 PUT、DELETE 等新的方法;
  • 增加了缓存管理和控制
  • 明确了连接管理,允许持久连接;(keep-alive)
  • 允许响应数据分块(chunked),利于传输大文件;
  • 强制要求 Host 头,让互联网主机托管成为可能
HTTP/2

基于 Google 的 SPDY 协议,注重性能改善,但还未普及;

变更点 :

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

HTTP 是什么

http不是一种服务,不是一种语言,不是一种网络。只是一种协议,一种约定。

image.png

协议 (协议是对参与者的一种行为约定和规范)
  • 」字,代表的意思是必须有两个以上的参与者。例如三方协议里的参与者有三个:你、公司、学校三个;租房协议里的参与者有两个:你和房东。

  • 」字,代表的意思是对参与者的一种行为约定和规范。例如三方协议里规定试用期期限、毁约金等;租房协议里规定租期期限、每月租金金额、违约如何处理等。

HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。

传输

有两个最基本的参与者 A 和 B,从 A 开始到 B 结束,数据在 A 和 B 之间双向而不是单向流动。通常我们把先发起传输动作的 A 叫做请求方,把后接到传输的 B 叫做应答方或者响应方

第二点,数据虽然是在 A 和 B 之间传输,但并没有限制只有 A 和 B 这两个角色,允许中间有“中转”或者“接力”。

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

HTTP 是一个在计算机世界里专门用来在两点之间传输数据的约定和规范。

超文本

文本 : 表示 HTTP 传输的不是 TCP/UDP 这些底层协议里被切分的杂乱无章的二进制包(datagram),而是完整的、有意义的数据,可以被浏览器、服务器这样的上层应用程序处理。图片、视频、压缩包等,在 HTTP 眼里这些都算作「文本」。

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

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

HTTP 常见状态码

状态码含义
2xxOK
3XX重定向
4XXCLIENT ERROR
5XXSERVER ERROR
  • 200 : OK 请求成功、请求的主体部分有请求资源

  • 204 :Not Content 响应报文中包含若干首部和状态行,没有实际的主体部分。

  • 301 :Moved Permanently 永久重定向,请求资源不存在 改用新的url 进行访问。

  • 302 :found 请求资源还在,但是临时需要用另一个 URL 进行访问。

301 和 302 都会在响应头里使用字段 Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。

  • 304 :not modified 请求的资源未修改,服务器返回此状态码时,不会返回任何资源。(用于缓存控制)
    解释: 客户端 校验本地资源是否时最新的,未修改则从本地获取(缓存资源),重定向从服务器端到本地浏览器端获取资源

  • 400 : bad request 请求语法错误 , 服务器无法理解。

  • 403 :forbidden 请求被拒绝 , 服务端禁止访问资源。(权限或者其他原因)

  • 404 :not found url 所对应的资源在服务器上无法找到。

  • 500 :internal server eroor 服务器内部错误。

  • 502 :bad gateway 网关或者 代理的服务器正常,在该服务器执行请求时,从后端服务器收到了一个无效响应。

  • 503 : service Unavailable 服务器宕机或无法正常运行,无法为请求提供服务。

  • 504 :gateway timeout 网关或代理服务器未及时从后端服务器获取请求。

web 请求示意图

image.png

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

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

相关文章

【数据结构】冒泡排序、快速排序(递归,非递归)、归并排序(递归,非递归),七大排序比较,

文章目录冒泡排序快速排序归并排序七大排序之间的对比冒泡排序 基本思想&#xff1a;所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&#xff1a;将键值较大的记录向序列的尾部移动&#xff0c;键值较小…

高性能web网关之Openresty相关基础知识

高性能web网关之Openresty一、Openresty 简介二、Openresty 应用场景三、lua-nginx-module3.1、Lua 模块指令顺序3.2、Lua嵌入nginx四、责任链五、cosocket后言一、Openresty 简介 openresty 是一个基于 nginx 与 lua 的高性能 web 平台&#xff0c;其内部集成了大量精良的 lu…

148.排序链表

148.排序链表 题目&#xff1a; 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;…

【论文阅读】CVPR2018-深度材料感知跨光谱立体匹配

深度材料感知跨光谱立体匹配 摘要 跨光谱成像对识别和检测任务很有帮助。通常&#xff0c;多个相机用于跨光谱成像&#xff0c;因此需要图像对齐或双目系统中的视差估计。多相机跨光谱系统逐渐被嵌入到有源RGB-D设备中&#xff08;例如Kinect和iPhone X中的RGB-NIR相机&#…

2022 年度回忆

2022 年度回忆 过了今天就是2023年了&#xff0c;记录一下在这一年里发生的点点滴滴吧。 年度总结2022 年度回忆1.石家庄实习2.准备秋招&#xff0c;然后去沈阳实习3.回学校4.来北京实习了总结今年大体且分为四条故事线 1.22年上半年石家庄实习 2.实习结束回家准备秋招&#…

句子表征(各项异性等偏差):PromptBERT: Improving BERT Sentence Embeddings with Prompts

一、核心 句子表征存在不足之处&#xff0c;可能面临各向异性、可能受到词频的影响、可能受到子词、大小写等的影响等等。 Gao et al.(2019)和Wang et al.(2020)指出&#xff0c;对于语言建模&#xff0c;使用最大似然训练通常会产生一个各向异性的词嵌入空间。“各向异性”是…

BabaSSL:支持半同态加密算法 EC-ElGamal

01 背 景 随着大数据与人工智能的快速发展&#xff0c;个人隐私数据泄露和滥用时有发生&#xff0c;隐私安全问题也越来越被重视。 国家于 2020 年施行密码法、2021 年施行个人信息保护法&#xff0c;对个人隐私数据和数据安全加密有更高的要求。 因此&#xff0c;隐私计算也…

2022年博客之路总结

今年是不平凡的一年&#xff0c;IT行业 开卷 的一年&#xff0c;今年大多数人 都 因种种原因 被迫换了工作&#xff0c;再次 先感谢CSDN 这个平台&#xff0c;在这里 给自己了一块可以展示自己才华的空间&#xff0c;通过CSDN平台的各项运营数据&#xff0c;让我有幸 拿到了 更…

flv.js播放flv视频

flv.js是FLV视频播放器&#xff0c;纯JS开发&#xff0c;无需Flash。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

【虚幻引擎UE】UE5 制作一个元旦烟花短视频的小案例(使用sequence制作视频案例)

祝愿大家元旦快乐&#xff01; 效果预览 一、创建粒子烟花特效 可以使用现成的Niagara烟花粒子特效&#xff0c;直接跳过这一步。 1、 通过Niagara系统创建粒子特效 选择现有发射器素材。 或者也可新建空白特效&#xff0c;将发射器拖入轨道&#xff08;素材包含闪光、拖…

基于TP6+Uni-app框架开发的多端圈子社区论坛小程序H5系统,带数据库和安装教程

正文&#xff1a; 前台uni-app后台tp6开发的多端圈子社区论坛小程序H5系统,带数据库和安装教程。 系统基于TP6Uni-app框架开发&#xff1b;客户移动端采用uni-app开发&#xff0c;管理后台TH6开发。 系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步&#xff0c…

CSDN的2022和2023

前言 今天是2022年12月31日&#xff0c;今年的最后一天&#xff0c;年关已至。 又到了&#xff1a;回头看路&#xff0c;低头赶路&#xff0c;抬头望路的时候。 回顾2022 疫情中的2022 今年应该算是疫情的高峰期吧&#xff0c;各种新冠变异株横行&#xff0c;从严控到一夜…

Day845.Fork/Join -Java 并发编程实战

Fork/Join Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于Fork/Join的内容。 线程池、Future、CompletableFuture 和 CompletionService&#xff0c;仔细观察会发现这些工具类都是在帮助站在任务的视角来解决并发问题&#xff0c;而不是让纠缠在线程之间如何协作的…

深度学习:05 卷积神经网络介绍(CNN)

目录 卷积神经网络简介 为什么要用卷积神经网络 网络结构组成 卷积层 卷积计算 卷积核大小 f 边界填充 (p)adding 步长 (s)tride 计算公式 卷积层 激活函数 池化层&#xff08;pooling&#xff09; dropout层 全连接层 卷积神经网络简介 卷积神经网络由一个或多个…

DoIP协议从入门到精通系列——车载网络安全

现代社会慢慢步入数字时代,在这个时代,网络安全已经成为最重要的关注点。自从1980年第一次出现电脑病毒,网络威胁和攻击持续不断,给社会(经济)带来巨大影响。随着汽车的数字化和互联化发展,自然而然会联想到汽车也将为成为黑客攻击的目标。导致的问题除了单纯的不便(攻…

数据结构 | 十大排序超硬核八万字详解【附动图演示、算法复杂度性能分析】

写在前面 2023年的第一篇博客&#xff0c;在这里先祝大家兔年快乐&#x1f430; 本文从学习到搜寻各种资料&#xff0c;整理成博客的形式展现足足花了一个月的时间&#xff0c;慢工出细活&#xff0c;希望本篇文章可以真正带你学懂排序&#xff0c;不再为写排序算法而苦恼 博主…

MQTT协议的工作原理

一、MQTT概述 MQTT由IBM的Andy Stanford-Clark博士和Arcom&#xff08;现为Eurotech&#xff09;的Arlen Nipper于1999年发明。 MQTT 是物联网 &#xff08;IoT&#xff09; 最常用的消息传递协议。MQTT 代表 MQ 遥测传输。该协议是一组规则&#xff0c;用于定义物联网设备如何…

二叉树16:找树左下角的值

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;513.找树左下角的值 题目&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边…

Android每周一轮子:Nvwa(热修复)

前言 &#xff08;废话&#xff09; 最近发现了一个问题&#xff0c;一些平时博客写的很多的程序员&#xff0c;反倒在日常的工作中&#xff0c;却是业务写的很一般&#xff0c;只会摆理论的人&#xff0c;甚至还跑出来教别人如何找工作&#xff0c;如何做架构&#xff0c;其实…

2022年终总结:少年不惧岁月长,彼方尚有荣光在。

2022年终总结&#xff1a;少年不惧岁月长&#xff0c;彼方尚有荣光在。 &#x1f3ac; 博客主页&#xff1a;王同学要努力 &#x1f3ac;个人简介&#xff1a;大三小白&#xff0c;喜欢前端 &#xff0c;热爱分享 &#x1f3a5; 本文由 王同学要努力 原创&#xff0c;首发于…