HTTP学习计划(web的基础)--HTTP概述(2/2)

前言:

昨晚才知道郭婶的新书已预售,最后发现已售空。。。我的神,这号召力和口碑没的说啊。好了,继续自己的事儿。

免责声明:本学习计划的知识和配图均来源于互联网和书籍资料,相关知识版权归相关作者所有,禁止用于商业用途。

1.6 连接

传输控制协议(Transmission Control Protocol,tcp)

1.6.1 TCP/IP

(套话~~)

概要介绍了 HTTP 报文的构成之后, 我们来讨论一下报文是如何通过传输控制协议
(Transmission Control Protocol, TCP) 连接从一个地方搬移到另一个地方去的。
HTTP 是个应用层协议。 HTTP 无需操心网络通信的具体细节; 它把联网的细节都
交给了通用、 可靠的因特网传输协议 TCP/IP。

只要建立了 TCP 连接, 客户端和服务器之间的报文交换就不会丢失、 不会被破坏,
也不会在接收时出现错序了。

HTTP 网络协议栈如下图所示:
这里写图片描述

1.6.2 连接、 IP地址及端口号

在http客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端和服务器
之间建立一条TCP/IP连接。
在TCP中,需要知道服务器的IP地址,以及与服务器上运行的特定软件相关的tcp端口号。

怎么知道? IP地址 端口号
URL
例如:
http://207.200.83.29:80/index.html
这个URL使用的机器的ip地址, 207.200.83.29以及端口号80.
http://www.netscape.com:80/index.html
这个URL没有使用数字形式的ip地址,它使用的是文本形式的域名,或者称之为主机名(www.netscape..com).主机名就是ip地址比较人性化的别称。可以通过一种称之为域名的服务(DNS)的机制方便地将主机名转换为ip地址。
http://www.netscape.com/index.html
这个的话没有端口号。http的URL中没有端口号时,可以假设默认端口号是80.
有了ip地址和端口号,客户端就可以很方便的通过TCP/IP进行通信了。
基本的浏览器连接处理
这里写图片描述

Telnet

   要明确的是, Telnet 可以很好地模拟 HTTP 客户端, 但不能作为服务器使用。 而且
对 Telnet 做脚本自动化是很繁琐乏味的。 如果想要更灵活的工具, 可以去看看 nc( netcat)。
通过 nc 可以很方便地操纵基于 UDP 和 TCP 的流量( 包括 HTTP), 还可
以为其编写脚本。 

1.7 协议版本(像历史般的文字,握草)

HTTP/1.0+
在 20 世纪 90 年代中叶, 很多流行的 Web 客户端和服务器都在飞快地向 HTTP
中添加各种特性, 以满足快速扩张且在商业上十分成功的万维网的需要。 其中很
多特性, 包括持久的 keep-alive 连接、 虚拟主机支持, 以及代理连接支持都被加
入到 HTTP 之中, 并成为非官方的事实标准。 这种非正式的 HTTP 扩展版本通常
称为 HTTP/1.0+。

HTTP/1.1
HTTP/1.1 重点关注的是校正 HTTP 设计中的结构性缺陷, 明确语义, 引入重要
的性能优化措施, 并删除一些不好的特性。 HTTP/1.1 还包含了对 20 世纪 90 年
代末正在发展中的更复杂的 Web 应用程序和部署方式的支持。 HTTP/1.1 是当前
使用的 HTTP 版本。

1.8 Web的结构组件

我们很了解的:Web 浏览器和 Web 服务器。

• 代理
位于客户端和服务器之间的 HTTP 中间实体。
• 缓存
HTTP 的仓库, 使常用页面的副本可以保存在离客户端更近的地方。
• 网关
连接其他应用程序的特殊 Web 服务器。
• 隧道
对 HTTP 通信报文进行盲转发的特殊代理。
• Agent 代理
发起自动 HTTP 请求的半智能 Web 客户端。

1.8.1 代理

代理位于客户端和服务器之间, 接收所有客户端的 HTTP 请求, 并
将这些请求转发给服务器( 可能会对请求进行修改之后转发)。 对用户来说, 这些应
用程序就是一个代理, 代表用户访问服务器。
在客户端和服务器之间转发流量的代理
出于安全考虑, 通常会将代理作为转发所有 Web 流量的可信任中间节点使用。 代理
还可以对请求和响应进行过滤。 比如, 在企业中对下载的应用程序进行病毒检测,
或者对小学生屏蔽一些成人才能看的内容。
这里写图片描述

1.8.2 缓存

Web 缓存( Web cache) 或代理缓存( proxy cache) 是一种特殊的 HTTP 代理服务
器, 可以将经过代理传送的常用文档复制保存起来。 下一个请求同一文档的客户端
就可以享受缓存的私有副本所提供的服务了
客户端从附近的缓存下载文档会比从远程 Web 服务器下载快得多。 HTTP 定义了很
多功能, 使得缓存更加高效, 并规范了文档的新鲜度和缓存内容的隐私性。

保存常用文档本地副本以提高性能的代理缓存。
这里写图片描述

1.8.3 网关

网关( gateway) 是一种特殊的服务器, 作为其他服务器的中间实体使用。 通常用于
将 HTTP 流量转换成其他的协议。 网关接受请求时就好像自己是资源的源端服务器
一样。 客户端可能并不知道自己正在与一个网关进行通信。
一个 HTTP/FTP 网关会通过 HTTP 请求接收对 FTP URI 的请求, 但通过 FTP
协议来获取文档。 得到的文档会被封装成一条 HTTP 报文, 发送给
客户端。
HTTP/FTP 网关
这里写图片描述

1.8.4 隧道和Agent代理

隧道( tunnel) 是建立起来之后, 就会在两条连接之间对原始数据进行盲转发的
HTTP 应用程序。 HTTP 隧道通常用来在一条或多条 HTTP 连接上转发非 HTTP 数
据, 转发时不会窥探数据。
HTTP 隧道的一种常见用途是通过 HTTP 连接承载加密的安全套接字层( SSL,
Secure Sockets Layer) 流量, 这样 SSL 流量就可以穿过只允许 Web 流量通过的防
火墙了。 HTTP/SSL 隧道收到一条 HTTP 请求, 要求建立一条到目
的地址和端口的输出连接, 然后在 HTTP 信道上通过隧道传输加密的 SSL 流量, 这
样就可以将其盲转发到目的服务器上去了。
隧道可以在非 HTTP 网络上转发数据( 显示的是 HTTP/SSL 隧道)
这里写图片描述
用户 Agent 代理( 或者简称为 Agent 代理) 是代表用户发起 HTTP 请求的客户端程
序。 所有发布 Web 请求的应用程序都是 HTTP Agent 代理。 到目前为止, 我们只提
到过一种 HTTP Agent 代理: Web 浏览器, 但用户 Agent 代理还有很多其他类型。
比如, 有些自己会在 Web 上闲逛的自动用户 Agent 代理, 可以在无人监视的情况下
发布 HTTP 事务并获取内容。 这些自动代理的名字通常都很生动, 比如“ 网络蜘蛛”
( spiders) 或者“ Web 机器人”( Web robots)。 网络蜘蛛会在 Web 上
闲逛, 搜集信息以构建有效的 Web 内容档案, 比如一个搜索引擎的数据库或者为比
较购物机器人生成的产品目录。
自动搜索引擎“ 网络蜘蛛” 就是 Agent 代理, 可以从世界范围内获取 Web 页面
这里写图片描述


好了,http学习计划告一段落了。当然了,这自然没有完全讲完http,只是整体性的讲了http。http的具体的真正内容需要大家自己去探索了。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值