Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、chrome等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。

web服务器端的工作流程:

(1)客户端发送请求

  客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。

(2)服务器解析请求

  Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。

Web服务器软件现在就知道了,它应该找到文件/sample.html,并使用HTTP/1.1协议将内存返回给客户。信息是经过与请求到来相同的连接发出的,所以服务器不需要定们客户或创建新的连接。

(3)读取其它信息(非必须步骤)

  Web服务器根据需要去读取请求的其它部分。在HTTP/1.1下,客户还应给服务器提供关于它的一些信息。元信息(metainformation)可用来描述浏览器及其能力,以使服务器能据此确定如何返回应答。

(4)完成请求的动作

  若现在没有错误出现,WWW服务器将执行请求所要求的动作。要获取(GET)一个文档,web服务器在其文档树中搜索请求的文件(/sample.html)。这是由服务器机器上作为操作系统一部分的文件系统完成的。若文件能找到并可正常读取,则服务器将把它返回给客户。

如果成功:文件被发送出去。

  首先,web服务器发送一个状态码及一些描述信息。既然文件已经找到,则发送状态码200,表示一切都OK ,文档随后发出,因为发送的信息是HTML文档,所以Content-type 取值为text/html。文档长为1024个字节,所以Content-type 取1024 。服务器软件的标识及文件的时间属性信息也被包含在头域中。

如果失败:返回错误指示。

  如果请求的文件没有找到或找到但无法读取,测请求无法满足。这时将返回不同于200的状态码。最常见的问题是请求中的文件名拼写有误,所以服务器无法找到该文件。这种情况下,服务器将发送一个状态码---404 给客户。

(5)关闭文件和网络连接,结束会话。

当文件已被发邮或错误已发出后,web服务器结束整个会话。它关闭打开的的被请求文件,关闭网络端口从而结束网络连接。有关的其它工作则是由客户端来完成的,包括接收数据,并以用户可读的方式呈现出来。这些与服务器无关。

[转载]web服务器的更多相关文章

  1. Nginx是如何配置为 Web 服务器的【转载】

    详解 Nginx是如何配置为 Web 服务器的 林涛 发表于:2016-11-29 23:23 分类:WebServer 标签:Nginx,web,web服务器 521次 抽象来说,将 Nginx 配 ...

  2. 写一个简易web服务器、ASP.NET核心知识(4)--转载

    第一次尝试(V1.0) 1.理论支持 这里主要要说的关于Socket方面的.主要是一个例子,关于Socket如何建立服务端程序的简单的代码. static void Main(string[] arg ...

  3. java web服务器tomcat介绍【转载】

    机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...

  4. 搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程----转载

    之前的Web服务器都是通过yum搭建的,想要添加新模块或者更新某些软件都很不方便(牵一发而动全身啊!).所以,现在准备将环境改为源码编译安装,这样便于调整,性能上也会比yum方式好很多.以下是我的安装 ...

  5. (转载)关于java多线程web服务器 以及相关资料转载

    1.自己实现的简单的java多线程web服务器: https://blog.csdn.net/chongshangyunxiao321/article/details/51095149 自己实现一个简 ...

  6. 【linux】linux 环境下 安装禅道(转载) -- 跟web服务器无关,无视apache、nginx!!!

    下载地址:http://www.zentao.net/download/zentao10.0.beta-80076.html 参考文章 链接 :https://blog.csdn.net/xinxin ...

  7. Win7服务器搭建实例教程:教你Win7如何搭建Web服务器【转载】

    原文地址:http://www.pc841.com/article/20140607-30534.html 局域网Web服务器的主要功能是实现资源共享,同时借助于局域网服务器访问页面可有效的实现信息的 ...

  8. apachetop 实时监测web服务器运行状况

    apachetop 实时监测web服务器运行状况   我们经常会需要知道服务器的实时监测服务器的运行状况,比如哪些 URL 的访问量最大,服务器每秒的请求数,哪个搜索引擎正在抓取我们网站?面对这些问题 ...

  9. 关于Web服务器的认识

    马上就要毕业了,也要开始找工作了,大学写了这么多代码了,却没有好好总结一下常用的概念很是遗憾额,就通过这篇博客记录一下我最常用的一些知识好了. 说到Web服务器,有很多文章都介绍的很好,之前看到一篇非 ...

随机推荐

  1. what's the 回撤

    什么是“回撤”? “回撤”是个谓语,前面隐含了一个主语.一般来说,没有人说“亏损回撤”的,我们说的“回撤”,通常指“股价回撤”.“市值回撤”.“净值回撤”和“盈利回撤”. “股价回撤”是针对个股的,即 ...

  2. javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别

    1.slice(),从已经有的数组中返回选定的元素, 使用范围是:Array,string 语法:obj.slice(start,end) 参数: start: 必需.规定从数组(字符串)的哪个ind ...

  3. Django进阶Model篇—数据库操作(ORM)

    一.数据库配置 django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见https://docs.d ...

  4. Angular1和Aangular4剖析

    字面解析: 1.Angular1又名angularJs,从angular2,angular4都不带JS 2.变化:angular2跳转到angular4 架构: 1.angular1是基于MVC 2. ...

  5. [Java in NetBeans] Lesson 04. Class / Objects

    这个课程的参考视频和图片来自youtube. 主要学到的知识点有: Class: Blueprint for an object. (e.g. dog is a class) Object: cust ...

  6. js模拟链表---双向链表

    双向链表: 每个元素,有一个 next(指向下一个元素)和一个prev(指向前一个元素) function dbLinkedList(){ var length=0; var head = null; ...

  7. JS控制文本框只能输入数字 \保留小数点后两位

    <input type="text" placeholder="保留到小数点后两位" maxlength="200" onkeyup= ...

  8. 启动及更改tomcat 配置

    到tomcat安装的bin目录下面,双击那个startup.bat文件,启动Tomcat 去浏览器输入 http://localhost:8080/  然后出现下面的界面,那就说明你的tomcat配置 ...

  9. nginx: [error] invalid PID number "" in "/usr/local/webserver/nginx/logs/nginx.pid" (原)

    进入nginx文件下,例如 :/usr/local/nginx/sbin [root@iZ25f7emo7cZ /]# cd /usr/local/nginx/sbin 运行命令: [root@iZ2 ...

  10. ActiveMQ漏洞利用方法总结

    转载来自:http://www.freebuf.com/column/161188.html 1.Console存在默认端口和默认密码/未授权访问(默认密码为admin:admin) ActiveMQ ...