图解HTTP笔记整理(前六章)

图解HTTP

第一章

web使用HTTP (HyperText Transfer Protocol,超文本传输协议)协议作文规范,完成从客户端到服务器端等一系列运作流程。

协议:计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。

TCP/IP 协议族分层:

TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。

把 TCP/IP 层次化是有好处的。比如,如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了。

层次化之后,设计也变得相对简单了。每一层可以只考虑分派给自己的任务,而不需要弄清下一层完成任务的具体细节。

应用层:

应用层决定了向用户提供应用服务时通信的活动。比如,FTP(File Transfer Protocol,文件传输协议)和 DNS(Domain Name System,域名系统)和HTTP 协议。

传输层:

传输层提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议)。

网络层:

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

链路层(又名数据链路层,网络接口层):

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上的范畴均在链路层的作用范围之内。

在这里插入图片描述

利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走。

IP协议

Internet Protocol 网际协议

IP 协议的作用是把各种数据包传送给对方。其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address)。

IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址可变换,但 MAC地址基本上不会更改。

ARP (Address Resolution Protocol)是一种用以解析地址的协议,根据通信方的 IP 地址就可以反查出对应的 MAC 地址。

ARP用途:通信的双方在同一局域网(LAN)内的情况是很少的,通常是经过多台计算机和网络设备中转才能连接到对方。而在进行中转时,会利用下一站中转设备的 MAC地址来搜索下一个中转目标。like 快递。

TCP协议

Transmission Control Protocol 传输控制协议

提供可靠的字节流服务。

字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理

可靠的传输服务是指,能够把数据准确可靠地传给对方

一言以蔽之,

TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

为了准确无误地将数据送达目标处,TCP 协议采用了三次握手(three-way handshaking)策略。

握手过程中使用了 TCP 的标志(flag) —— SYN(synchronize,同步) 和ACK(acknowledgement,回执)。

在这里插入图片描述

发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。

DNS协议

Domain Name System 域名系统

是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析服务。

计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。

DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

URI和URL

URL(Uniform Resource Locator,统一资源定位符)指定文档所在地址。

URL正是使用 Web 浏览器等访问 Web 页面时需要输入的网页地址。

URI (Uniform Resource Identifier)用字符串标识某一互联网资源,而 URL表示资源的地点(互联网上所处的位置)。可见 URL是 URI 的子集。

URI举例:

在这里插入图片描述

第二章

http用于客户端和服务器之间的通信。

请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。

请求报文是由请求方法、请求 URI、协议版本、可选的请求首部字段和内容实体构成的。

在这里插入图片描述

响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。

在这里插入图片描述

HTTP是无状态协议

HTTP 协议自身不对请求和响应之间的通信状态进行保存。

有了 Cookie 再用 HTTP 协议通信,就可以管理状态了。

HTTP/1.1 中可使用的方法
GET:获取资源

将数据附加在 URL 之后,以查询字符串(Query String)的形式。数据以键值对的方式表示,并用 & 连接。查询字符串以 ? 开头。

POST:传输实体主体,用于向服务器提交数据

将数据放在 HTTP 请求的主体部分(body),而不是 URL 中。这使得 POST 可以传输较多数据,并且适合传递敏感信息。

PUT:传输文件

HEAD:获得报文首部

DELETE:删除文件

OPTIONS:询问支持的方法

在这里插入图片描述

TRACE:追踪路径

CONNECT:要求用隧道协议连接代理

HTTP keep-alive

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。

管线化(pipelining):不用等待响应亦可直接发送下一个请求。同时并行发送多个请求,而不需要一个接一个地等待响应。

Cookie

Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

在这里插入图片描述

第四章

状态码告知从服务器端返回的请求结果,状态码如 200 OK,以 3 位数字和原因短语组成。

在这里插入图片描述

第五章

物理层面只有一台服务器,使用虚拟主机的功能,则可以假想已具有多台服务器。

在相同的 IP 地址下,由于虚拟主机可以寄存多个不同主机名和域名的 Web 网站,因此在发送 HTTP 请求时,必须在 Host 首部内完整指定主机名或域名的 URI。

代理

代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求 URI,会直接发送给前方持有资源的目标服务器。

持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。

转发时,需要附加Via 首部字段以标记出经过的主机信息。

在这里插入图片描述

为什么使用代理服务器?

利用缓存技术(稍后讲解)减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的,等等。

缓存代理

代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本(缓存)保存在代理服务器上。

当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。

透明代理

转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理。

网关

利用网关可以由 HTTP 请求转化为其他协议通信。工作机制和代理十分相似。

利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。

网关可以连接数据库,使用SQL语句查询数据。

隧道

隧道可按要求建立起一条与其他服务器的通信线路,届时使用 SSL等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。

可以和远距离的服务器安全通信

隧道不会去解析 HTTP 请求,在通信双方断开连接时结束。

缓存

缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间

缓存服务器是代理服务器的一种,当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本。

在这里插入图片描述

优势在于利用缓存可避免多次从源服务器转发资源。因此客户端可就近从缓存服务器上获取资源,而源服务器也不必多次处理相同的请求了。

在这里插入图片描述

第六章

HTTP 首部

在这里插入图片描述

HTTP 请求报文

在请求中,HTTP 报文由方法、URI、HTTP 版本、HTTP 首部字段等部分构成。

在这里插入图片描述

在这里插入图片描述

HTTP 响应报文

在响应中,HTTP 报文由 HTTP 版本、状态码(数字和原因短语)、HTTP 首部字段 3 部分构成。

在这里插入图片描述

在这里插入图片描述

HTTP 首部字段

通用首部字段(General Header Fields

请求报文和响应报文两方都会使用的首部。

在这里插入图片描述

请求首部字段(Request Header Fields

从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。

在这里插入图片描述

响应首部字段(Response Header Fields

从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

在这里插入图片描述

实体首部字段(Entity Header Fields

针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

在这里插入图片描述

端到端首部(End-to-end Header

分在此类别中的首部会转发给请求 / 响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发

逐跳首部(Hop-by-hop Header

分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1 和之后版本中,如果要使用 hop-by-hop 首部,需提供 Connection 首部字段。

Keep-Alive是逐跳首部。

HTTP/1.1 通用首部字段

Cache-Control:控制缓存的行为

Connection:控制不再转发给代理的首部字段,管理持久连接。

在这里插入图片描述

HTTP/1.1 版本的默认连接都是持久连接。为此,客户端会在持久连接上连续发送请求。当服务器端想明确断开连接时,则指定Connection 首部字段的值为 Close。

Date:表明创建 HTTP 报文的日期和时间。

Trailer:说明在报文主体后记录了哪些首部字段,应用在 HTTP/1.1 版本分块传输编码时。

Transfer-Encoding:传输报文主体时采用的编码方式。

Upgrade:用于检测 HTTP 协议及其他协议是否可使用更高的版本进行通信,其参数值可以用来指定一个完全不同的通信协议。

在这里插入图片描述

Via:为了追踪客户端与服务器之间的请求和响应报文的传输路径,还可避免请求回环的发生。所以必须在经过代理时附加该首部字段内容。

在这里插入图片描述

Warning:告知用户一些与缓存相关的问题的警告。

在这里插入图片描述

请求首部字段

Accept:用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用 type/subtype 这种形式,一次指定多种媒体类型。q( quality factor)是权重。

在这里插入图片描述

Authorization:用户代理的认证信息。

From:告知服务器使用用户代理的用户的电子邮件地址。

Host:虚拟主机运行在同一个 IP 上,因此使用首部字段 Host 加以区分。

在这里插入图片描述

If-Match:形如 If-xxx 这种样式的请求首部字段,都可称为条件请求。服务器接收到附带条件的请求后,只有判断指定条件为真时,才会执行请求。

在这里插入图片描述

If-None-Match:在 GET 或 HEAD 方法中使用首部字段 If-None-Match 可获取最新的资源。只有在 If-None-Match 的字段值与 ETag 值不一致时,可处理该请求。与 If-Match 首部字段的作用相反。

Referer:告知服务器请求的原始资源的 URI。

在这里插入图片描述

User-Agent:将创建请求的浏览器和用户代理名称等信息传达给服务器。

响应首部字段

响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。

Age:首部字段 Age 能告知客户端,源服务器在多久前创建了响应。字段值的单位为秒。

ETag:告知客户端实体标识,服务器会为每份资源分配对应的 ETag值。它是一种可将资源以字符串形式做唯一性标识的方式。

在这里插入图片描述

强 ETag 值,不论实体发生多么细微的变化都会改变其值。

弱 ETag 值只用于提示资源是否相同。只有资源发生了根本改变,产生差异时才会改变 ETag 值。这时,会在字段值最开始处附加 W/。

在这里插入图片描述

Location:使用首部字段 Location 可以将响应接收方引导至某个与请求 URI 位置不同的资源。

在这里插入图片描述

实体首部字段

实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。

Allow:用于通知客户端能够支持 Request-URI 指定资源的所有 HTTP 方法。

在这里插入图片描述

Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式。

内容编码是指在不丢失实体信息的前提下所进行的压缩。gzip、compress、deflate、identity。

Content-Languag:首部字段 Content-Language 会告知客户端,实体主体使用的自然语言(指中文或英文等语言)。

Expires:将资源失效的日期告知客户端。

Last-Modified:指明资源最终修改的时间。

Cookie 服务的首部字段

Cookie 是用户识别及状态管理。

在这里插入图片描述

Set-Cookie:当服务器准备开始管理客户端的状态时,会事先告知各种信息。

在这里插入图片描述

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

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

相关文章

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图:扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.(发表日期: 2019&…

HQChart使用教程30-K线图如何对接第3方数据41-分钟K线叠加股票增量更新

HQChart使用教程30-K线图如何对接第3方数据40-日K叠加股票增量更新 叠加股票叠加分钟K线更新Request 字段说明Data.symbol 协议截图返回json数据结构overlaydata HQChart代码地址交流 叠加股票 示例地址:https://jones2000.github.io/HQChart/webhqchart.demo/samples/kline_i…

可以一键生成热点营销视频的工具,建议收藏

在当今的商业环境中,热点营销已经成为了一种非常重要的营销策略。那么,什么是热点营销呢?又怎么做热点营销视频呢? 最近高考成绩慢慢公布了,领导让结合“高考成绩公布”这个热点,做一个关于企业或产品的营销…

鸿蒙NEXT开发:工具常用命令—install

安装三方库。 命令格式 ohpm install [options] [[<group>/]<pkg>[<version> | tag:<tag>]] ... ohpm install [options] <folder> ohpm install [options] <har file> alias: i 说明 group&#xff1a;三方库的命名空间&#xff0c;可…

sys.stdin对象——实现标准输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 sys.stdin是一个标准化输入对象&#xff0c;可以连续输入或读入文件所有内容&#xff0c;不结束&#xff0c;不能直接使用。输入完成后&am…

print()函数——打印输出

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 print()函数是Python编程最常见的函数&#xff0c;常用于输出程序结果&#xff0c;默认输出到屏幕&#xff0c;也可以输出到指定文件。 语法参考 pr…

吉他谱制作软件哪个好 吉他弹唱谱制作软件推荐

在市面上存在着多种吉他谱制作软件&#xff0c;如何选择一款适合自己需求的软件成为了许多人面临的挑战。下面来看看吉他谱制作软件哪个好&#xff0c;吉他弹唱谱制作软件推荐的相关内容。 一、吉他谱制作软件哪个好 吉他谱制作软件在现代音乐创作中扮演着重要角色&#xff0c…

调频信号FM的原理与matlab与FPGA实现

平台&#xff1a;matlab r2021b&#xff0c;vivado2023.1 本文知识内容摘自《软件无线电原理和应用》 调频(FM)是载波的瞬时频率随调制信号成线性变化的一种调制方式&#xff0c;音频调频信号的数学表达式可以写为&#xff1a; Fm频率调制&#xff0c;载波的幅度随着调制波形…

open()函数——打开文件并返回文件对象

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 open()函数用于打开文件&#xff0c;返回一个文件读写对象&#xff0c;然后可以对文件进行相应读写操作。 语法参考 open()函数的语法格式如下&…

【K8s】专题六(2):Kubernetes 稳定性之健康检查

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、基本介绍 二、工作原理 三、探针类型 1、存活探针&#xff08;LivenessProbe&#x…

docker入门配置

1、创建配置镜像 由于国内docker连接外网速度慢&#xff0c;采用代理 vi /etc/docker/daemon.json添加以下内容 {"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com","https://dockerproxy.com","https://hub-mirror.c.163.co…

SOA和ESB介绍

SOA&#xff08;面向服务的架构&#xff09; 面向服务的架构&#xff08;Service-Oriented Architecture&#xff0c;SOA&#xff09;是一种设计理念&#xff0c;用于构建松耦合的、可互操作的、模块化的服务。在SOA架构中&#xff0c;应用程序被划分为一系列的服务&#xff0c…

电脑屏幕花屏怎么办?5个方法解决问题!

“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑&#xff0c;我应该怎么解决这个问题呢&#xff1f;求帮助。” 在这个数字时代的浪潮中&#xff0c;电脑早已成为我们生活中不可或缺的一部分。然而&#xff0c;当你正沉浸在紧张的游戏对战中&#xff0c;或是…

谷歌上搞下来的,无需付费,可以收藏!

在数字化时代&#xff0c;我们越来越依赖于智能设备来获取信息和知识。中国智谋App正是这样一款应用&#xff0c;它将中国古代的智慧与谋略书籍带入了我们的移动设备&#xff0c;让我们能够随时随地学习和领悟。而且提供文言文的原文和译文。 软件下载方式&#xff1a;谷歌上搞…

39.右键弹出菜单管理游戏列表

上一个内容&#xff1a;38.控制功能实现 以 ​​​​​​​ 38.控制功能实现 它的代码为基础进行修改 效果图&#xff1a; 点击设置之后的样子 点击删除 点击删除之后的样子 实现步骤&#xff1a; 首先添加一个菜单资源&#xff0c;右击项目资源选择下图红框 然后选择Menu 然…

【C语言】字符/字符串+内存函数

目录 Ⅰ、字符函数和字符串函数 1 .strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数 1 .memcpy 2.memmove 3.memcmp Ⅰ、字符函数和字符串函数 1 .strlen 函数原型&#xff1a;…

《计算机英语》 Unit 6 Internet 互联网

Section A Internet 互联网 The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to link several billion devices worldwide. 互联网是一个全球性的互连计算机网络系统&#xff0c;使用标准的互联…

苹果CMS-V10 搭建教程踩坑,跳过部分验证

我突发奇想,想要安装一个CMS 苹果CMS搭建教程-CSDN博客 然后就有了下面的问题 结论是zip相关依赖未安装, 通过 apt install php-zip, 重新打开安装页面,同样如此 最后依据某个网站提示,修改 "\\192.168.1.200\root\var\www\html\maccms\application\install\control…

多家国产大模型提供OpenAI API服务替代方案,谷歌将推出明星网红AI聊天机器人

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 1、OpenAI终止对中国提供服务 6月25日凌晨&#xff0c;多个用户收到OpenAI的推送邮件&#xff0c;信中称&#xff0c;自今年7月9日起&#xff0c;将开始阻止来自非支持国家和地区的API&#xff08;应…

3.任务的创建与删除

1.什么是任务&#xff1f; 任务可以理解为进程/线程&#xff0c;创建一个任务&#xff0c;就会在内存开辟一个空间。 任务通常都含有while(1)死循环 2.任务创建与删除相关的函数 3.CUBEMAX相关配置 编辑一个led1闪烁的任务