和我一起学《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.ttwww.smartisan.com两个,t.tt会重定向到smartisan.com这个域名。

6.发送响应

服务器有很多条到各个客户端的连接,有些空闲,有些在向服务器发送数据,有些在向客户端回送响应数据。服务器要记录连接的状态。

7.记录日志

事务结束后,服务器在日志文件中添加一个条目描述已执行的事务。

原文地址:http://www.cnblogs.com/JohnTsai/p/5201641.html
相关文章
|
9月前
|
移动开发 数据挖掘 开发者
服务器发送事件(SSE)在现代Web开发中的关键作用
服务器发送事件(SSE)是HTML5标准协议,用于服务器主动向客户端推送实时数据,适合单向通信场景。相比WebSocket,SSE更简洁高效,基于HTTP协议,具备自动重连、事件驱动等特性。常见应用场景包括实时通知、新闻推送、数据分析等。通过Apipost等工具可轻松调试SSE,助力开发者构建高效实时Web应用。示例中,电商平台利用SSE实现秒杀活动通知,显著减少延迟并简化架构。掌握SSE技术,能大幅提升用户体验与开发效率。
|
8月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
389 35
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
357 3
|
11月前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
273 15
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
486 11
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
310 3
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
ZooKeeper 保证了数据的强一致性,  zk集群中任意节点(一个zkServer)上的相同znode下的数据一定是相同的。
894 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
负载均衡: LVS(Layer 4), HAProxy(Layer 4、 7),Nginx(Layer 7) 虚拟化: LXC、KVM、Xen HA:Keepalived、Heartbeat 分布式缓存...
890 0
|
Web App开发 前端开发 测试技术
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
一、迁移步骤 1.首先安装最新版本gitlab(gitlab7.2安装) 2.停止旧版本gitlab服务 3.将旧的项目文件完整导入新的gitlab   bundle exec rake gitlab:import:r...
817 0

热门文章

最新文章