HTTP协议学习(四)——Web服务器

转载 2015年11月19日 21:25:40
本篇疑惑:HTTP服务器如何处理HTTP请求的?
首先介绍一下什么是web服务器,我个人理解就是能支撑web应用正常工作的软硬件结合的一个玩意儿。web服务器可以是一套软件,一台小型机等。但最终提供支持的都是软件。硬件只是作为一个载体用于支撑web服务器软件的运行。
下面开始介绍Web服务器是如何处理客户端请求的。笔者整理为以下步骤:
接收客户端请求——接收请求——处理请求——访问资源——构建响应——发送响应——记录事物日志。这7个步骤。
HTTP协议学习(四)——Web服务器 - 夜深,人未静 - AlexChen
 
一、接收客户端请求(建立连接)
严格说来应该是建立连接,此时服务器与客户端会通过tcp建立底层通讯连接,这个过程服务器是可以拒绝的,如果不建立,则服务器会忽视请求。如果接收请求则服务器还会通过反向DNS去解析主机名以及以及确定客户端用户用于下面最后一条的日志记录,但是反向DNS会花费更多时间(增加处理时间)的时间它也不是必须的。这些都可以通过控制管理来配置。

二、接收请求
解析客户端请求的报文信息(从网络中读取请求报文),为解析报文做准备。在接收请求过程中服务器会有以下行为:
1、解析请求行:查找请求方法、指定资源标识符URI、版本号、他们之间以空格符分开以回车换行CRLF作为结束行。
2、读取报文首部,同样以CRLF结尾、如果首部有结束的空行也会检测
3、如果Content-Length有效,则会继续读取请求主体
如图
HTTP协议学习(四)——Web服务器 - 夜深,人未静 - AlexChen
 

三、处理请求
根据第二步解析出的报文处理该报文请求,这个处理主要包括对请求方法,资源,首部以及可用主题进行分类,将他们分给不同的处理单元。

四、访问资源
对请求的资源做映射。web服务器是一个资源服务器,它负责发送预先创建好的内容(html页面,js,等)或根据请求内容构建出动态的内容(比如查询统计时统计表格数据)。在web服务器将响应内容回送给客户端之前都需要将URI映射成预先创建好或新动态生成的资源上。最简单的则是通过请求URI作为资源,web服务器中每个单独的web应用会有单独的一个根目录,通常在根目录后加上URI就可以定位到请求的资源。这里就会存在一个安全性的问题。如果服务器配置不当访问者就可以通过目录列表的方式访问不该看见的东西暴露该站点的其它隐秘信息。
如果访问的是动态资源,那么服务器会将访问映射到其它后端处理程序上去。服务器还可以针对特定的资源进行访问控制要求访问者提供访问密码等。

五、构建响应
当服务器识别了访问资源、则会执行请求方法的描述动作并产生响应报文(请参考前面文章中的响应报文内容
如果还产生了响应实体,那么就将实体包含在了响应报文中。
HTTP协议学习(四)——Web服务器 - 夜深,人未静 - AlexChen
 
六、发送响应
发送响应内容和接收响应一样,如果是持久链接服务器则应该特别注意释放空闲链接以减少资源浪费。而如果是非持久链接则在发送响应之后立即关闭掉连接。

七、记录事物日志
当以上所有事物完成之后服务器就会在日志中添加一条描述用于记录。
自此、服务器是如何处理一条求情,以及处理过程是怎么样的就阐述完毕了。

我们不妨总结一下:

客户端请求服务器时服务器首先会判断是否接收连接、如果不接受则终止、如果接收则建立通信连接、接着开始分析请求报文对报文内容进行解析、然后处理解析出的报文内容、将请求的URI做定位、其中还会协调其它程序协作。完成之后就进行构建响应,将响应内容,类型等放入响应报文中、然后发送回客户端、最后在日志中记录该次事物

转载地址:http://blog.163.com/ny_lonely/blog/static/1889242732013116113133774/

相关文章推荐

嵌入式Web服务器学习之HTTP协议

1 HTTP协议 HTTP协议是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数据的协议。它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它是一个请求、...

【JAVA WEB】学习笔记——HTTP协议

C/S模式和B/S模式 客户端和服务器B/S模式:客户端与服务器一问一答(通讯)遵循:HTTP协议 HTTP概念: HTTP,(超文本传输协议),它是TCP/IP协议中的一个应用层协议。 HTTP...

HTTP协议头访问WEB服务器

  • 2012-02-16 15:24
  • 55KB
  • 下载

Web服务器 http协议

  • 2012-04-26 10:41
  • 14.96MB
  • 下载

手机App通过http协议从web服务器上获取json格式的数据

本实验制作了一个手机app,该app通过http协议从web服务器上获取json格式的数据并显示。测试用的手机和web服务器在同一个wifi网络中,手机的IP地址为192.168.1.3,web服务器...
  • bufanq
  • bufanq
  • 2017-03-22 18:15
  • 1082

基于HTTP协议实现的小型web服务器

我们先了解一下这个项目最终能达到的一个目标,然后以这个来进行项目的分析: 1、实现最基本的HTTP/1.0版本的web服务器,客户端能够使用GET、POST方法请求资源 2、服务器将客户请求的资源...

Android版Web服务器实现(一)HTTP协议请求头解析

Web服务器是可以向发出请求的浏览器提供文档的程序,主要功能是提供网上信息浏览服务。不论在哪里的浏览器向服务端发出了请求,服务端只有收到了请求之后才会作出响应。那么服务端又要如何知道有请求发来呢?最简...

web服务器工作原理及http协议通信

一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器。     Web服务器的工作原理简单的可以归纳为:客户机...

JavaWeb - XML,XML的解析,Tomcat,web服务器,http协议

JavaWeb - XML,XML的解析,Tomcat,web服务器,http协议

java实现的利用HTTP协议原理实现的GET/POST请求的web服务器

1.HTTP协议原理 (1)连接 (2)请求 (3)应答 (4)关闭连接 2.为了测试不同的请求,写了两个html文件。 get.html Documen...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)