和我一起学《HTTP权威指南》——Web服务器
Web服务器
Web服务器会做些什么
- 1.建立连接(接受或关闭一个客户端连接)
- 2.接收请求(读取HTTP报文)
- 3.处理请求(解释请求报文并采取行动)
- 4.访问资源
- 5.构建响应(创建带有正确首部的HTTP响应报文)
- 6.发送响应
- 7.记录事务处理过程(将已完成事务有关的内容记录在日志文件中)
1.接受客户端连接
处理新连接
客户端请求TCP连接---->Web服务器建立连接--->服务器判断是哪一个客户端,从TCP连接中解析出IP地址--->服务器将新连接添加到Web服务器连接列表中,监视连接上的数据传输
客户端主机名识别
用反向DNS
配置Web服务器:将客户端IP地址转换为客户端主机名
2.接收请求报文
读取数据并解析请求报文
3.处理请求
收到请求,可根据方法资源首部和可选的主体部分对请求进行处理
4.对资源的映射及访问
Web服务器是资源服务器。(发送预先创建好的内容或运行在服务器上的资源生成程序所产生的动态内容)
发送之前,将请求报文中的URI映射为Web服务器上适当的内容或内容生成器
4.1docroot
Web服务器的文件系统中会有一个特殊的文件夹专门存放Web内容,叫文档的根目录(document root,docroot)
4.2动态内容资源的映射
服务器将URI映射为动态资源,映射到按需动态生成内容的程序上去。
5.构建响应
服务器识别出资源,执行请求方法中的描述的动作,返回响应报文。
5.1重定向
服务器返回重定向响应,服务器将浏览器重定向到其他地方执行请求。
重定向响应由返回码3XX
说明
例如,很多网站都有多个域名,如锤子的官网就有
t.tt
和www.smartisan.com
两个,t.tt会重定向到smartisan.com这个域名。
6.发送响应
服务器有很多条到各个客户端的连接,有些空闲,有些在向服务器发送数据,有些在向客户端回送响应数据。服务器要记录连接的状态。
7.记录日志
事务结束后,服务器在日志文件中添加一个条目描述已执行的事务。
和我一起学《HTTP权威指南》——Web服务器的更多相关文章
- JavaScript权威指南--WEB浏览器中的javascript
知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...
- Http权威指南(服务器、缓存)
对于web服务器(软件)大家应该不会陌生,常见的web服务器有Apache.IIS.Tomcat.Nginx.Jetty等等. 1.基本功能 几乎所有的web服务器都会执行以下几项同样的任务: 1.建 ...
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是c ...
- 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...
- HTTP权威指南阅读笔记五:Web服务器
Web服务器会做些什么: 1.建产连接:接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭. 1)处理新连接 2)客户端主机名识别 3)通过ident确定客户端用户 ident在组织内 ...
- 和我一起学《HTTP权威指南》——连接管理
连接管理 1.TCP连接 几乎所有的HTTP通信都是由TCP/IP承载的. 浏览网页时客户端执行的操作: 如浏览http://www.joes-hardware.com:80/power-tools. ...
- 图解HTTP权威指南(三)| Web服务器对HTTP请求的处理和响应
作者简介 李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络 ...
- 《Web性能权威指南》
<Web性能权威指南> 基本信息 原书名:High performance browser networking 原出版社: O'Reilly Media 作者: (加)Ilya Grig ...
- web性能权威指南(High Performance Browser Networking)
web性能权威指南(High Performance Browser Networking) https://www.cnblogs.com/qcloud1001/p/9663524.html HTT ...
随机推荐
- 结合order by 解CTF某题
真tmd不容易 <?php error_reporting(0); if (!isset($_POST['uname']) || !isset($_POST['pwd'])) { echo '& ...
- Android 面试知识集1
今晚在复习Android基础的时候,找到了一些很有价值的基础知识,分享给给位Android的开发者.这些是基础知识,同时也可以当做面试准备.面试题其实是很好的基础知识学习,有空会好好整理相关基础知识. ...
- Android 下拉刷新上啦加载SmartRefreshLayout + RecyclerView
在弄android刷新的时候,可算是耗费了一番功夫,最后发觉有现成的控件,并且非常好用,这里记录一下. 原文是 https://blog.csdn.net/huangxin112/article/de ...
- [转]Java中BigDecimal的使用
原文地址:https://blog.csdn.net/cen_s/article/details/76472834 在日常开发中我们经常会碰到小数计算,而小数直接计算的话会出现一些小小的错误,如下 S ...
- [synergy]两台机器公用键盘鼠标
两台机器公用键盘鼠标 如果是Linux: 下载synergy相关的deb包,然后
- Java编程的逻辑 (43) - 剖析TreeMap
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- oozie 重新提交作业
在oozie的运行过程当中可能会出现错误,比如数据库连接不上,或者作业执行报错导致流程进入suspend或者killed状态,这个时候我们就要分析了,如果确实是数据或者是网络有问题,我们比如把问题解决 ...
- 代码备忘, TODO宏实现
代码备忘, TODO宏实现 我们平时在开发过程中, 往往并非憋足气一股脑敲完所有代码.每一个模块, 每一个函数的实现总有个先后顺序. 又或者哪个部分须要做调整, 改动- 所以, 我们须要有一个东西, ...
- centos7配置kerberos服务,并使用JAAS登录
准备两个虚拟机:192.168.1.101.192.168.1.102,101作为kerberos的server端,102作为kerberos的client端.开启88端口. 1.安装kerberos ...
- python 基础干货 02
list 与 tuple list 类似 数组 tuple 跟 list 一样, 只是一旦定义, 里边的内容不可以改变. 这样, 上边的内容就不可以改变了. "可变的" tuple ...