HTTP 基础 (基于 HTTP 的系统的组件、客户端:用户代理、网络服务器)

1 篇文章 0 订阅

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

HTTP 概述

HTTP是一种获取资源(如HTML文档)的协议。它是Web上任何数据交换的基础,是一种客户机-服务器协议,这意味着请求由收件人发起,通常是Web浏览器。从获取的不同子文档(例如,文本、布局描述、图像、视频、脚本等)重建完整的文档。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjuuXDoN-1659954805401)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6bb99e419fb34a0c871f850812e194e8~tplv-k3u1fbpfcp-watermark.image?)]

客户端和服务器通过交换单独的消息进行通信(与数据流相反)。客户端(通常是Web浏览器)发送的消息称为请求,服务器发送的消息作为应答称为响应。

在这里插入图片描述

HTTP设计于20世纪90年代初,是一种可扩展的协议,随着时间的推移而不断发展。它是通过TCP或TLS加密TCP连接发送的应用层协议,但理论上可以使用任何可靠的传输协议。由于其可扩展性,它不仅用于获取超文本文档,还用于图像和视频,或将内容发布到服务器,如HTML表单结果。HTTP还可以用于获取部分文档,以便根据需要更新网页。

基于 HTTP 的系统的组件

HTTP是一种客户机-服务器协议:请求由一个实体,即用户代理(或代表它的代理)发送。大多数情况下,用户代理是一个Web浏览器,但它可以是任何东西,例如,一个在Web上爬行以填充和维护搜索引擎索引的机器人。

每个单独的请求都被发送到服务器,由服务器处理并提供一个称为响应的答案。在客户端和服务器之间有许多实体,统称为代理,它们执行不同的操作,并充当网关或缓存。

在这里插入图片描述

实际上,在浏览器和服务器之间有更多的计算机处理请求:路由器、调制解调器等等。由于Web的分层设计,这些信息隐藏在网络和传输层中。HTTP位于应用层的顶部。虽然底层对于诊断网络问题很重要,但与HTTP的描述基本无关。

客户端:用户代理

用户代理是代表用户的任何工具。此角色主要由Web浏览器执行,但也可以由工程师和Web开发人员用于调试其应用程序的程序执行。

浏览器始终是发起请求的实体。它从来不是服务器(尽管多年来添加了一些机制来模拟服务器启动的消息)。

要显示网页,浏览器发送原始请求以获取表示该网页的HTML文档。然后它解析该文件,发出与执行脚本、要显示的布局信息(CSS)以及页面中包含的子资源(通常是图像和视频)相对应的附加请求。然后,Web浏览器组合这些资源以呈现完整的文档,即网页。浏览器执行的脚本可以在稍后阶段获取更多资源,并且浏览器相应地更新网页。

网页是一种超文本文档。这意味着显示内容的某些部分是链接,可以激活(通常通过单击鼠标)以获取新网页,从而允许用户引导其用户代理并在网络中导航。浏览器将这些指示转换为HTTP请求,并进一步解释HTTP响应,以向用户提供清晰的响应。

网络服务器

在通信通道的另一侧是服务器,它根据客户机的请求提供文档。一台服务器实际上只是一台机器;但它实际上可能是共享负载(负载平衡)的服务器的集合,或者是询问其他计算机(如缓存、DB服务器或电子商务服务器)的复杂软件,全部或部分按需生成文档。

服务器不一定是一台机器,但可以在同一台机器上托管多个服务器软件实例。使用HTTP/1.1和主机头,它们甚至可以共享相同的IP地址。

在通信通道的另一侧是服务器,它根据客户机的请求提供文档。一台服务器实际上只是一台机器;但它实际上可能是共享负载(负载平衡)的服务器的集合,或者是询问其他计算机(如缓存、DB服务器或电子商务服务器)的复杂软件,全部或部分按需生成文档。

服务器不一定是一台机器,但可以在同一台机器上托管多个服务器软件实例。使用HTTP/1.1和主机头,它们甚至可以共享相同的IP地址。

代理

在 Web 浏览器和服务器之间,许多计算机和计算机中继 HTTP 消息。由于Web堆栈的分层结构,其中大多数在传输,网络或物理级别运行,在HTTP层变得透明,并可能对性能产生重大影响。在应用程序层操作的代理通常称为代理。这些可以是透明的,转发他们收到的请求而不以任何方式改变它们,或者不透明,在这种情况下,他们会在将请求传递到服务器之前以某种方式更改请求。代理可以执行许多功能:

  • 缓存(缓存可以是公共的,也可以是私有的,就像浏览器缓存一样)
  • 过滤(如防病毒扫描或家长控制)
  • 负载平衡(允许多个服务器处理不同的请求)
  • 身份验证(用于控制对不同资源的访问)
  • 日志记录(允许存储历史信息)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系的老肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值