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. Android中不显示标题

    在网上找的用requestWindowFeature(Window.FEATURE_NO_TITLE)这一句报错. 后来找到另一种方法 1.在res/values/styles.xml中添加如下代码 ...

  2. Ubuntu 启动服务 失败 的 可能解决办法

    ➜  ~ service nfs-kernel-server start  Job for nfs-server.service canceled. 如果遇到服务启动失败,请检查有关的文件夹是否创建( ...

  3. sqlyog创建数据库表关系图

    作为一个后台前端,数据库,需求分析,运维,PPT全包的码农来说.uml建模不存在的,对不起我没有时间,就用sqlyog拉几个你看看吧.看的懂的一眼就看清了,看不懂的整再好也是白瞎. 第一步:选择增强工 ...

  4. java.lang.String & java.lang.StringBuilder

    java.lang.String & java.lang.StringBuilder String 成员方法 作用 public charAr(int index) 返回给定位置的代码单元 p ...

  5. VM克隆后找不到eth0的问题解决

    问题描述 使用VM WorkStation新建虚拟机A,查看IP信息,显示结果: [root@centos65x64 ~]# ifconfig -a eth0 Link encap:Ethernet ...

  6. Ext.net GridPanel锁定列需要注意的几个问题

    1.注意需要加LockingGridView <ext:Column DataIndex="Name" Header="姓名" Width="1 ...

  7. 关于nexus的学习

    1.首先下载 解压版: 2.将nexus的bin目录路径  写入  环境变量path中: 3.修改 nexus配置文件wrapper.conf  15行  ,指定java.exe文件位置(例如:wra ...

  8. group by having 判断重复的有几条数据

    判断字段id和字段zhi重复的条数 group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数,--例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根 ...

  9. oracle 任务备份

    @echo offset hour=%time:~,2%if "%time:~,1%"==" " set hour=0%time:~1,1%set temp=% ...

  10. Docker - rm 命令

    Docker rm 命令 docker rm :删除容器 docker rm [OPTIONS] CONTAINER [CONTAINER...] -f # 通过SIGKILL信号强制删除一个运行中的 ...