HTTP浅析(二)HTTP结构

HTTP浅析(二)HTTP结构

本篇主要介绍HTTP服务器、代理、缓存等

web服务器主流有哪几种?

  • 免费的Apache软件占据了所有web服务器大约60%的市场
  • 微软的Web服务器占据了另外30%
  • Sun的iPlanet占据了另外的3%

数据仅供参考

web服务器会做些什么?

  1. 建立连接——接受一个客户端连接,如果不希望与这个客户端连接,就将其关闭。
  2. 接收请求——从网络中读取一条HTTP请求报文
  3. 处理请求——对请求报文进行解释,并采取行动。
  4. 访问资源——访问报文中指定的资源。
  5. 构建资源——创建带有正确首部的HTTP响应报文。
  6. 发送响应——将响应回送给客户端
  7. 记录事物处理过程——将与已完成事物有关的内容记录在一个日志文件中。

代理和网关有什么区别?

代理和网关的区别

代理连接的是两个或多个使用相同协议的应用程序,而网关连接的是两个或者多个不同协议的端点。区别在于网关的前后协议不同

我们为什么要使用代理?

  • 儿童过滤器,可以利用过滤器代理来阻止儿童访问成人内容
  • 文档访问控制,可以用代理服务器在大量Web服务器和Web资源之间实现统一的访问控制策略,创建审核跟踪机制。
  • 安全防火墙,网络安全工程师会使用代理服务器来提高安全性。
  • Web缓存,代理缓存维护了常用文档的本地副本,将它们按需提供,减少缓慢且昂贵的因特网通信。
  • 反向代理,代理可以假扮Web服务器。这些被称为替代物或者反向代理的代理接收发给Web服务器的真实请求,它们可以发起与其他服务器的通信,以便按需定位所请求的内容。反向代理
  • 内容路由器,代理服务器可以作为“内容路由器”使用,根据因特网流量状况以及内容类型将请求导向特定的Web服务器。
  • 转码器,可以修改内容的主体格式。在这些数据表示法之间进行的透明转换被称为转码。

代理是如何获取流量的?

  • 修改客户端,支持手工和自动的代理配置,将客户端的HTTP请求有意地发送给代理,而不是原始服务器。
  • 修改网络,网络基础设施在客户端不知情的情况,对其进行拦截,这种代理称为“拦截代理”。
  • 修改DNS的命名空间,放在Web服务器的代理服务器——替代物,假扮服务器的host和ip地址,所有的请求就会发送给替代物,通过编辑DNS名称列表。
  • 修改Web服务器,通过HTTP重定向命令,将HTTP请求重定向到代理上去。

代理是如何获取流量

客户端发给代理的URL与发给服务器的URL有什么不同?

  1. 没有设置客户端使用代理时,它会发送部分URI
  2. 设置客户端使用代理时,它会发送完整URI

Web缓存有哪些好处?

  • 缓存减少了冗余的数据传输,节省了你的网络费用。
  • 缓存缓解了网络瓶颈的问题。不需要更多的带宽就能够更快地加载页面。
  • 缓存降低了对原始服务器的要求。服务器可以更快地响应,避免过载的出现。
  • 缓存降低了距离时延,因为从较远的地方加载页面会更慢一些。
  • 缓存在解决瞬间拥塞时显得很重要,类似场景比如突发的新闻事件,大量的人几乎同时搜索一个事件,过多的流量峰值可能会造成Web服务器瞬间瘫痪。

缓存分为哪两种?

  • 缓存命中,直接取缓存数据。
  • 缓存未命中,需要从原始服务器获取数据。

缓存再验证是什么?

原始服务器的内容可能会发生变化,缓存需要时不时对其进行检测,看看保存的副本是否仍然是服务器的最新副本。“新鲜度检测”被称为HTTP再验证。

缓存再验证

缓存再验证时,这种方式确实比和原始服务器核对要慢,因为没有从服务器中获取数据,又比未命中情况要快。

缓存的命中率一般是多少?

都希望缓存命中率越高越好,实际上对于现在中等规模的缓存来说,40%已经很不错了,能够显著地提升性能,减少流量了。

if-modified-since失败会怎么样?

if-modified-since失败

网关有什么用?

网关可以作为某种翻译器使用,网关是资源和应用程序之间的粘合剂。

为什么SSL需要搭载HTTP进行传输?

HTTP在发展中存在哪些问题?

  • 复杂性,HTTP相当复杂,而且特性之间是相互依存的,比如处理连接管理,报文处理等等。
  • 可扩展性,HTTP很难实现增式扩展。很多传下来的HTTP都没有自助的功能性扩展,使协议的扩展无法兼容。
  • 有些部分效率不高,其中很多低效特性会随着高时延,低吞吐量的无线访问技术而变得更加严重。
  • 传输依赖性,HTTP对于底层替换TCP/IP有很大的依赖性,想要替换底层的传输协议并没有什么很好的办法。