1)用单台虚拟主机实现多个域名

HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。比如,提供Web托管服务的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网站,这是因为使用了虚拟主机(又称虚拟服务器)的功能。

客户端使用HTTP协议访问服务器时,会经常采用类似www.baidu.com这样的主机域名。

在互联网上,域名通过DNF服务映射到IP地址之后访问目标网站。请求发到服务器时,已经是以IP地址形式访问了。

所以如果一台服务器托管了两个域名。当收到请求时候要如何分清是访问哪个域名的?

相同的IP地址下,发送HTTP请求时,比如在Host首部内完整指定主机名或域名URI。

2)通信数据的转发程序

HTTP通信时,除了客户端和服务器以外,还有一些用于通信数据转发的应用程序

2.1 代理 代理是一种由转发功能的应用程序

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

在HTTP通信中可能通过多台代理服务器,转发时,需要附件Via首部字段以标记处经过的主机信息。

使用代理服务器的理由:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,获取访问日志为主要目的等

缓存代理:代理转发响应时,会把资源副本(缓存)到代理服务器上,遇见相同的资源请求时,就可以不用从源服务器获取资源,直接将之前的缓存作为响应返回。

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

2.2 网关 网关是转发其他服务器通信数据的服务器

接收从客户端发送来的请求时,它就像自己用来资源的服务器一样对请求进行处理。

网关的工作机制和代理十分相似。而网关能使通信路线上的服务器提供非HTTP协议服务。

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

2.3 隧道 隧道在相隔很远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序

隧道本身不会解析HTTP请求,请求会保持原样中转给之后的服务器

使用SSl等加密手段进行通信,隧道的目的是确保客户端能与服务器进行安全的通信。

3)保存资源的缓存

缓存是指代理服务器或客户端本地磁盘内保存的资源副本。

利用缓存可减少对源服务器的方位,节省通信流量和通信时间。

3.1 缓存的有效期

当源服务器的资源更新后,或因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性。如判断缓存失效,缓存服务器讲会再次从源服务器上获取新版本的资源

3.2 客户端的缓存

缓存不仅可以放在缓存服务器内,还可以存在客户端浏览器中。如果缓存有效,就不必想服务器请求相同的资源了,可以直接从本地磁盘内读取。如果缓存无效,会再次请求新资源

HTTP协议05-Web服务器的更多相关文章

  1. 认识JavaWeb,servlet, JSP, Tomcat, http协议,Web服务器

    JavaWeb通常指服务器端的Java应用开发. 一般来说,服务器是在网络通信条件下工作的,这就离不开http协议. HTTP协议,是为服务器和客户端通信提供的规范,其中规定了信息的格式,符合规范格式 ...

  2. http协议、web服务器、并发服务器(上)

    目录 1. HTTP格式 1.1 HTTP GET请求的格式: 1.2 HTTP POST请求的格式: 1.3 HTTP响应的格式: 2. Web静态服务器-显示固定的页面 3. Web静态服务器-显 ...

  3. http协议、web服务器、并发服务器(下)

    Web静态服务器-5-非堵塞模式 单进程非堵塞模型 import socket import time def main(): tcp_socket_server = socket.socket(so ...

  4. C#中使用Socket实现简单Web服务器

    上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 熟悉Socket编程: 熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重 ...

  5. WEB服务器、应用程序服务器、HTTP服务器区别

    很清晰的解释了WEB服务器.应用程序服务器.HTTP服务器区别 转载自 http://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html WE ...

  6. web服务器与应用服务器

    WEB服务器与应用服务器的区别: 1.WEB服务器: 理解WEB服务器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB ...

  7. web服务器 应用 服务器

    WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服务器 ...

  8. web服务器、应用服务器、http服务器区别

    引用 WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器     Web服务器的基本功能就是提供Web信息 ...

  9. WEB服务器、应用程序服务器、HTTP服务器区别(转)

    WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服务器 ...

  10. WEB服务器、应用程序服务器区别

    WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服务器 ...

随机推荐

  1. Windows/Linux用户态监控进程启动事件方法

    catalogue . windows wmi监控进程启动 . linux netlink监控进程启动 1. windows wmi监控进程启动 from threading import Threa ...

  2. 自学python 8.

    1.有如下文件,a1.txt,里面的内容为:LNH是最好的培训机构,全心全意为学生服务,只为学生未来,不为牟利.我说的都是真的.哈哈分别完成以下的功能:a,将原文件全部读出来并打印.b,在原文件后面追 ...

  3. VS Code使用 Vue工程配置 eslint

    首先确保VS Code 安装了 Vetur 和 Eslint 插件. VS CODE :文件 =>首选项 => 设置   (有3个点 或 {} 这样的大括号,打开setting.json) ...

  4. 【二】JConsole、VisualVM

    监控工具 jconsole.exe 只有10几k,真正的代码是包装在tools.jar中. 双击[本地线程]:sun.tools.jconsole.JConsole: 内存的线在上下起伏,证明是[垃圾 ...

  5. IDApython教程(四)

    前三部分已经验证了用IDAPython能够让工作变的更简单,这一部分让我们看看逆向工程师如何使用IDAPython的颜色和强大的脚本特性. 分析者经常需要面对越来越复杂的代码,而且有时候无法轻易看出动 ...

  6. 【游记】关于NOIP2017

    -2017.11.13- Day0.到达酒店无所事事.跟着两个大佬拉着窗帘玩恐怖游戏留下了心理阴影,然后跑去找葱葱一起复习.晚上很晚才睡.Day1.T1结论题,以前写过.T2模拟,细节有点多.T3Di ...

  7. 【bzoj 4756】[Usaco2017 Jan] Promotion Counting

    Description The cows have once again tried to form a startup company, failing to remember from past ...

  8. keras中的重要函数

    https://blog.csdn.net/u012969412/article/details/70882296

  9. Linux或UNIX系统配置检查

    1. Linux或UNIX系统配置检查 系统配置的扫描是基于被动式策略进行扫描,主要检测主机上是否存在配置错误或者不符合预定义的安全策略的配置,通常需要管理员权限才能执行的扫描. 在Linux或UNI ...

  10. python-类型转化

    s='1234' a=int(s)     字符串转换成整数 s=str(a)    整数转换成字符串