没有合适的资源?快使用搜索试试~ 我知道了~
《http权威指南》笔记
资源推荐
资源详情
资源评论
HTTP 事务的时延
1、DNS 查询,大多数 HTTP 客户端都有一个小的 DNS 缓存。
2、TCP 连接建立时延。
3、HTTP 请求及相应时延。
4、处理时延。
性能
1、TCP 连接的三次握手;
2、用于捎带确认的 TCP 延迟确认算法;
3、TCP 慢启动(打开拥塞窗口)(新连接的传输速度比交换过一定量数据的、
“已调谐”连接慢一些)
4、Nagle 算法,鼓励发送全尺寸的 TCP 报文段。
但是会引发一些 HTTP 性能问题,小的 HTTP 报文可能无法填满一个分组,
可能会因为等待那些永远不会到来的额外数据而产生时延;其次 Nagle 算法与
延迟确认之间会存在交互问题,Nagle 算法会阻止数据的发送,直到有确认分
组抵达为止,但确认分组自身会被延迟确认算法延迟 100~200 毫秒。
HTTP 应用程序常常会在自己的栈中设置 TCP_NODELAY,禁用 Nagle 算
法,提高性能。如果要这么做的话,一定要确保会向 TCP 中写入大块的数据。
HTTP 连接
1、connection 首部:
(1) close:说明操作完成之后需关闭这条长连接。
(2) HTTP 首部字段名:列出了只与此连接有关的首部,不应将这些首部再
进行转发。
(3) 任意标签值:用于描述此连接的非标准选项。
2、串行连接:
(1) 例如一个 web 页面嵌入了 3 个图片,浏览器需要发起 4 个 HTTP 事务
来显示此页面,串行的建立连接,那么每一条的连接时延和慢启动时延
就会叠加起来;而且加载 1 个图片时,其他地方都没动静,用户体验也
不好。
3、并行连接:
(1) 并行连接不一定更快,因为对带宽及内存有要求。
(2) 实际上,浏览器确实使用了并行连接,但是他们会将并行连接总数限制
为一个较小的值(一般为 4 个)。
4、持久连接:长连接
(1) 很多 web 应用程序都会打开少量的并行连接,其中的每一个都是长连
接。
5、HTTP/1.0 Keep-Alive:
(1) Connection:Keep-Alive
Keep-Alive:max=5,timeout120
说明服务器最多还会为 5 个事务保持长连接,并保持到连接空闲 2 分钟
之后。
(2) 盲中继:老的或简单的代理都是盲中继,它们只将字节从一个连接转发
到另一个连接中去,不对 Connection 首部进行特殊的处理。
(3) 因此现代的代理都绝不能转发 Connection 首部和所有名字出现在
Connection 中的首部。
6、HTTP/1.1 persistent connection
(1) 用于取代 Keep-Alive,目的相同,但是工作机制更优一些。
(2) 默 认 都 是 激 活 的 , 如 果 要 在 事 务 结 束 时 关 闭 连 接 , 则 需 要
Connection:close
(3) HTTP/1.1 的代理必须能够分别管理与客户端和服务器的持久连接(每
个持久连接都只适用于一跳传输)。
(4) 因为要兼容 HTTP/1.0,所以请求的时候都带上 Connection:Keep-
Alive。
7、管道化连接:
Web 服务器
1、web 服务器和 tomcat:
(1) 对于 Web 服务器来说,Apache 服务器仅仅支持静态网页;Tomcat
作为一款 Web 应用服务器则既能为动态网页服务,同时也能为静态网
页提供支持。
(2) 大多数的 Web 服务器都是用底层语言编写如 C,利用了相应平台的特
征,因此用纯 Java 编写的 Tomcat 执行速度不可能与它们相提并论。
(3) 一般来说,大的站点都是将 Tomcat 与 Apache 的结合,Apache 负责
接受所有来自客户端的 HTTP 请求,然后将 Servlets 和 JSP 的请求转
发给 Tomcat 来处理,Tomcat 完成处理后,将响应传回给 Apache,
最后 Apache 将响应返回给客户端。
2、第一步——接收客户端连接
3、第二步——接收请求报文:
(1) Web 服务器分为:单线程;多线程;复用 I/O;复用 I/O 的多线程。
4、第三部——处理请求
5、第四部——对资源的映射及访问:
(1) 将请求 URI 拼接到 web 服务器的 docroot(webapps)后,进行返回。
6、第五步——构建响应
(1) MIME:响应头首部 Content-type:主类型/子类型,服务器的 MIME
类 型 表 : application/msword 对 应 doc , text/html 对 应
html、htm......
7、第六步——发送响应
8、第七步——记录日志
代理
代理服务器:安全防火墙、web 缓存、加速器...
1、部署代理服务器的几种方式:
(1) 出口代理:可以讲代理固定在本地网络的出口点,过滤出口。
(2) 访问(入口)代理:代理常被放在 ISP 访问点上,缓存常用文档副本,
以提高用户下载速度。
(3) 反向代理:常被部署在网络边缘,web 服务器之前。
(4) 网络交换代理:可以将具有足够处理能力的代理放在网络之间的因特网
对等交换点上,通过缓存来减轻因特网节点的拥塞。
2、http 请求报文中 URI 的不同:
(1) 向 web 服务器:
(2) 向代理:
(3) 没有设置客户端代理时,是发的部分 uri;设置客户端代理后,发的完
整的 uri。
(4) 但是有些代理服务器是隐藏的(反向代理,假扮真服务器,客户端不知
道使用了代理):
剩余20页未读,继续阅读
资源评论
w_tt
- 粉丝: 20
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功