HTTP权威指南- Web服务器

三种服务器类型
· 在标准计算机上安装并运行通用的软件Web服务器
· Web服务器设备:预装好的软硬件解决方案
· 嵌入式Web服务器:嵌入到打印机或家用设备中的小型Web服务器
基本Web服务器请求的步骤

服务器请求步骤


1. 处理新链接
web服务器收到客户端请求,建立连接时,将TCP连接中将客户端IP地址解析出来,一旦新连接建立并被接收,服务器就会将新连接添加到现存Web服务器连接列表中做好监视数据传输的准备。当检测到客户端IP地址是未验证的或者恶意的,服务器也可以随意关闭或拒绝连接。
 “反向DNS”
 使用“反向DNS”对服务器进行配置后,可以将客户端的IP地址转换成客户端主机名,web服务器可以在访问控制和日志中使用主机名。但是,主机名查找需要耗费很长时间,降低web事务处理速度。因此,很多大容量web服务器禁止主机名解析,或只允许对特定内容解析。
 ident
 某些服务器支持IETF的ident协议,服务器通过ident协议找到请求连接的用户名——用于日志记录
 若客户端支持ident协议,会在TCP端113接口监听ident请求,客户端发送连接请求,服务器打开到客户端113端口的连接,得到连接对应的用户名的响应。缺点:很多客户端不支持ident协议守护进程软件、会使HTTP事务处理产生严重时延、 防火墙不允许、协议不安全,容易被伪造、不支持IP地址、涉及用户隐私等

ident协议


2.接收请求报文
 报文内部表示法

请求报文内部表示方式


 web服务器处理请求的结构类型

服务器结构


 单线程服务器:一次只处理一个请求。会造成严重性能问题,只适用于低负荷的服务器。
 多进程及多线程服务器:用多个进程或更高效的线程同时对请求进行处理。当服务器同时处理成百上千的连接时,需要的进程或线程数量会消耗很多的内存或系统资源,可以对线程/进程最大数量进行限制。
 复用I/O服务器:监视所有连接上的活动,当连接状态发生变化时,就对该连接进行少量处理;处理结束后,将连接返回到开放连接列表中,等待新的状态变化。
 复用的多线程服务器:将多线程和复用功能结合,利用计算机平台上的多个CPU。
3.处理请求
4.对资源的映射及访问

 服务器通过请求uri来查询文件系统的请求文件,并添加响应返回。
 docroot ——文档的根目录,服务器中专门用于存放web内容的文件夹
 例如请求uri: /image/image_1.png docroot:/user/files  文件存放地址为/user/files/image/image_1.png
 同一个服务器可以托管多个站点,服务器可以通过HTTP首部的Host首部或根据IP地址区分不同站点,为其访问指定不同的docroot

docroot


 用户主目录 docroot:服务器提供的私有web网站  通常以 /~ 开始,后跟uri
 私有docroot通常为用户主目录下名为public_html的目录或指定目录
5.构建响应
 响应报文包括状态码、响应首部、响应实体(可无)
 响应实体包括Content-Type首部(MIME类型)、Content-Length、主体内容
重定向 
返回码3XX,响应首部包含内容的新地址或优选地质URI,重定向一般用于用于办理的资源301、临时搬离的资源303/307、URL增强303/307、负载均衡、服务器关联、规范目录名称
6.发送响应
服务器要记录连接状态,对持久连接,要正确计算Content-Length首部;对非持久连接,服务器发送完报文后要主动关闭自己端连接。
7.记录日志
服务器会在事务结束后,记录事务执行的详细内容

已标记关键词 清除标记
相关推荐
《ASP.NET 4权威指南》是ASP.NET领域的又一鸿篇巨制,由资深ASP.NET专家亲自执笔,知名微软技术社区和权威技术专家一致鼎力推荐。 它是国内第一本关于ASP.NET 4的著作。从广度上讲,内容系统而全面,全书一共包含4个部分:第一部分以一个易于实践的示例开篇,既能帮助读者快速了解ASP.NET的开发流程,还能帮助读者建立ASP.NET开发的大局观,紧接着全面介绍了ASP.NET的各种常用控件,这是ASP.NET的基础;第二部分详尽地讲解了ASP.NET访问的所有细节,包括数据管理、数据控件绑定与操作、GridView控件、LINQ查询、LINQ与ADO.NET和XML,以及ADO.NET实体框架等;第三部分深入浅出地讲解了开发一个Web站点必须掌握的各种知识点、流程和方法;第四部分是本书的高级话题,分析了ASP.NET状态管理、自定义服务器控件、ASP.NET缓存、多语言本地化应用程序、ASP.NET Web部件等。从深度上来讲,本书对实际开发中极不常用而大部分同类书都浓墨重彩的知识点只做了必要性的介绍,对于较容易给开发者带来困惑而大部分同类书都浅尝辄止的知识点进行了深入分析,其详细程度是一般同类书不能比拟的。从实践性上讲,本书精心设计了大量可操作性强和极具借鉴价值的实例代码与解决方案。 本书在广度、深度和实践性上完美结合,既能引领初学者快速在实践中掌握ASP.NET开发,又能帮助有一定经验的读者解决在实际开发中遇到的各种疑难问题。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页