一、概述

Web服务器一般指的是“网站服务器”,是某种驻留在因特网上的计算机程序,可以向请求终端提供服务,主要功能时存储、处理和传递网页给“客户”,传递内容一般是HTML文档、图像、样式表或脚本等,也可以放置网站文件以供浏览或下载。

WEB服务器也称为WWW(Word Wide Web)服务器,核心功能就是提供网页信息浏览服务,严格来说Web服务器只负责处理Http协议请求,发送静态页面的内容。

目前主流的web服务器主要是Apache、Nginx、IIS,还有较多使用的Tomcat、Jetty、WebSphere,WebLogic,Kerstrel等。下图为市场占有率历史数据,Apache占有率较高,但是在前1K网站排名中,Nginx占有率最高。

二、Web服务器工作原理

首先要通过TCP协议的三次握手建立与目标Web服务器的连接,然后HTTP协议生成针对目标Web服务器的HTTP请求报文,通过TCP、IP等协议发送到目标Web服务器上。HTTP协议是基于TCP协议的应用层协议,用于用户代理和服务器之间的通信,Web服务器是被动的,只有终端客户发起请求时才会响应。web服务器一般是一次请求一次回应,一问一答的工作方式:

  1. 用户代理发起资源请求,发起的通常(但不限于)是URL(统一资源标志符,Uniform Resource Identifier),发起动作类型GET/POST/DELETE/PUT等;
  2. 用户代理解析URL获取目标域名,交由DNS解析(使用者通常提供的是域名或者IP:端口);
  3. 建立TCP链接完成HTTP协商(完成双方的协议、内容格式、加密等);
  4. 用户代理把请求的内容封装成HTTP数据包发送给服务器;
  5. 服务器接收到资源请求后按照之前的协商解包数据;
  6. 服务器将用户需要的内容打包成HTTP数据包并返回给用户,完成一次工作流程。

1、在应用层HTTP协议的基本过程

http通信通常发生在TCP/IP连接之上,默认使用TCP协议的80端口,也就是说这一过程有:

  1. 建立连接。通过申请Socket套接字实现,用户打开一个Socket并将其绑定在端口上。
  2. 发送请求。客户端将请求发送到服务器的监听端口上完成一次请求动作。
  3. 发送响应。服务器监听请求并处理之后将响应内容消息发回客户端。
  4. 关闭连接。客户端和服务器双方关闭Socket结束TCP/IP会话。

2、在传输层TCP协议的基本过程

上面也说过HTTP在TCP协议上。客户端和服务器在连接、数据交互过程中需要实现的有:

  1. 服务器绑定端口&监听端口;
  2. 客户端发动请求;
  3. 服务器响应连接请求;
  4. 建立连接;
  5. 交互数据,接收或发送;
  6. 关闭通信结束会话;

以上的2~4的三次握手和6的四次挥手。在2的时候通常包含多客户端的高并发,这也是web服务器关注的重点之一。

三次握手建立连接

四次挥手释放连接

3、Web服务在服务器端的工作原理

Web业务在服务器端主要是在干什么呢?或者说服务器自己需要做哪些事情呢?

  1. TCP监听端口,以建立和用户代理之间的连接,完成连接后,后续的HTTP请求则不再进入监听直到释放。
  2. 预处理会先从TCP报文中获取HTTP请求;依据双方协商解密解包等;服务器在依据自生配置进行安全处理。
  3. 预处理。URL+请求动作来确定用户的资源处理方式,分配到静态或动态资源处理模块。
  4. 静态资源处理模块负责检索“静态资源”,HTML/JS/CSS/图片/视频等,内容通常为字符流或者字节流。
  5. 动态资源处理模块运行业务逻辑处理,依据不同条件返回不通内容,内容形式同静态资源。
  6. 后处理。与预处理类似的发送响应信息前的准备流程。
  7. 资源输出模块把响应信息封装成HTTP报文扔到TCP中。

说明下,静态资源和动态资源是从服务器处理信息方式或者说是响应请求内容的方式来说的。

静态资源可以简单的理解成文本、HTML、图片、JS等,内容是固定的,无需处理、无需查询数据库就可以直接发给请求者,你要什么我就给什么。

动态资源则是需要服务器程序进行处理,根据不同条件在页面也显示不同的数据,好处就是内容的更新不需要修改页面,缺点就是速度上没有静态资源响应快。客户端在获取动态资源,先将请求交给web的一个存储点,存储点链接数据库,数据库处理数据并发给服务器,服务器再发给客户端渲染展示。

【WEB服务器】什么是WEB服务器相关推荐

  1. web服务器错误配置文件,web服务器http配置文件

    web服务器http配置文件 内容精选 换一换 通过调优Nginx的配置文件,可以有效的提高Nginx服务的性能.配置说明如表1所示.调优原则:以压满业务核为前提,用尽量少的中断核,配合配置网卡中断绑 ...

  2. Web 服务器 之 简易WWW服务器的架设

    作者:小P 来自:LinuxSir.Org 摘要:Linux为何如此的流行,其最大的特点莫过于功能强大,性能稳定的服务器应用了.像WWW,MAIL,FTP,DNS和SMB等;在这篇文章中,我们从Web ...

  3. [投稿]通过Web界面在多台服务器上批量创建文件

    最近在EDAS产品上发现了一个有意思的功能,能够在Web界面上向多台服务批量下发命令执行,觉得这个功能能够极大的提升效率,因此想分享给其他小伙伴. 这里我以"通过Web界面在多台服务器上批量 ...

  4. lvs服务器需要开启web服务么_如何检测 Web 服务请求丢失问题

    导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测.故障演练.JVM.应用容器.服务框架.流量调度.监控.诊断等多个技术领域,以更结构化的 ...

  5. centos 7 文档服务器,centos 7 web服务器

    centos 7 web服务器 内容精选 换一换 OpenSSL版本需要升级至1.1.1a或者以上.CentOS系统自带的OpenSSL版本为1.0.2k-fips,本文以升级到1.1.1a版本为例. ...

  6. Eclipse利用Maven的插件部署web项目到远程tomcat服务器

    使用maven的自动部署功能可以很方便的将maven工程自动打包并且部署到远程tomcat服务器,省去一些繁琐的操作,节省大量时间. 我使用的tomcat版本是8.5,tomcat7和tomcat8都 ...

  7. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果. 以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我 ...

  8. Web服务器和应用程序服务器有什么区别

    Web服务器和应用程序服务器有什么区别 [ 来源:javaworld.com | 作者:佚名 | 时间:2006-10-12 14:08:30 | 浏览:人次 ] 问:什么是应用程序服务器,什么是We ...

  9. 启动一个java项目http状态 500 - 内部服务器错误_Java web服务器假死分析

    问题现象: 服务端端口开着,客户端可以telnet 服务器上的端口,但访问服务时没有任何返回. 服务器环境 :Java 8 + linux CentOS release 6.5. 用apache ab ...

  10. 单网卡部署WEB+Mail+FTP+ISA服务器之四:局域网内部署FTP和winwebmail服务器

    一.目的:构建简单FTP和MAIL服务器为下一步发布到互连网做准备.另外如果你觉得Exchange很麻烦,就用winwebmail吧,绝对的简单方便,安全性也不错. 二.网络环境: 三.局域网发布FT ...

最新文章

  1. h5 一镜到底_传说中的一镜到底效果,到底是怎么玩的?
  2. 读取Excel表格数据到DataGridView中
  3. HTML5前端常见攻击方式案例讲解!
  4. black:你的Python代码有点丑
  5. 恭喜我的同事黄玉奇入选开放原子开源基金会TOC
  6. ubuntu mysql怎么备份_Ubuntu下MySQL备份与异地备份
  7. codeforces 344A-C语言解题报告
  8. AI算法连载22:统计之边际概率推断
  9. linux 查找文件或者服务
  10. React 组件间传值的几种情形
  11. 活动服务器优化 暂时关闭,服务器优化之关闭不必要的服务
  12. [POJ1961 Period]
  13. 计算机网络 时延、发送时延、传输时延、处理时延、排队时延、时延带宽积
  14. MySQL MGR 5.7.22 on centos 6.3 单主/多主搭建测试
  15. Mac下常用快捷键(转)
  16. 使用CRT改变目录与文件的字体的颜色
  17. 京瓷1125打印机清零_怎么设置京瓷1125MFP打印机ip地址
  18. 乔布斯简介及其十大经典语录
  19. 基于Ingress实现灰度发布(金丝雀发布)和蓝绿发布
  20. 怎么彻底删除手机上的微信聊天记录?百看不如一试的删除方法!

热门文章

  1. 苹果测试充电速度软件,数据传输以及充电速度测试
  2. 特殊用途的句子 - 虚拟
  3. iPhone 12界面下拉不显示控制中心解决方法「iphone技巧」
  4. 获得内核函数地址的四种方法
  5. Kafka自带的Zookeeper未授权访问漏洞
  6. 数值求解一维定态薛定谔方程
  7. 橙色云再度入选中国科学院发布的《互联网周刊》
  8. 攻防世界logmein
  9. 如何批量将 jpg 图片转换为 png 格式
  10. 谷歌Google验证