web服务器、应用服务器和常见的服务器概念_部署的后端服务是应用服务器吗-程序员宅基地

技术标签: nginx  web  http  web服务器  

http协议解析–绪篇

在做开发的过程中,总是能感觉到自己对http相关的各种概念模糊不清。

什么是web服务器,什么是应用服务器?

浏览器的编译原理是什么?

http的头文件为何要这样配置?

Nginx,Apache等为何要这样操作?

不同的服务器软件有什么作用?

而网上关于http的实战讲解一般都是以操作为主,涉及到原理的部分大多模糊不清,自己又很少花时间去系统的学习http协议相关的内容,大多数时候都是照着配一配就行了,所以明明写了挺多代码了,对于http还是知之甚少。所以,决定写一个专题,留作笔记也以此来督促自己深入的看看http,后续有什么地方说错了,也欢迎大家指出。
在这里插入图片描述


热点问题

在之前的学习中,曾经困扰我许久的问题便是:web服务器,http服务器,服务器软件,网站后台,应用服务器这些都有什么区别,与Apache,Nginx究竟是什么关系,Tomcat又是什么?

在绪篇中首先便先讲一下这些容易混淆的概念性问题。

web服务器

一般我们把发出http请求的一方称作请求分,比如浏览器就是http的请求方,那么应答方就是我们常说的web服务器(web Server)。

应该说web服务器在某些时候是一种很广泛的概念,比如在web代表一项应用软件是,web服务器有时候会被理解为软化的后台,也正是因为这样,很多人会混淆这个概念。

在硬件层面上,web服务器可以简单的理解为另一台性能更好的主机。不过在现实生活中,不仅仅只是一台主机,而是利用反向代理、负载均衡等等技术组成的一大群机房。

在软件层面上指的是提供web服务的应用程序。我的理解就是响应http请求,返回超文本文件等数据,或者把请求转发给后面的Tomcat、node.js等应用服务器。因此,web服务器是静态服务器。

常见的web服务器有Apache,Nginx,Tomcat等,其实Tomcat更多的做为应用服务器使用,一般不会直接用Tomcat做web服务器。

在这里插入图片描述

在这里插入图片描述
当然目前Nginx等也经常用来做反向代理服务器和负载均衡等

http服务器

http服务器就是指使用http协议传输资源提供服务,由于应用层通讯协议主要就是http协议,所以在普遍情况下,web服务器==http服务器

网站后台

可以提供数据接口等服务的应用层软件。常说的就是应用的后端,进行数据和逻辑处理。

应用服务器

应用程序服务器通过各种协议把商业逻辑暴露给客户端应用程序。能实现动态网页技术,也称之为应用容器,web容器等

应用服务器不等于网站后台,但是在应用服务器上可以部署网站后台。通常,Web服务器会有插件来支持脚本语言,比如PHP、ASP等,也可以生成动态的HTTP内容。那为什么要使用应用服务器呢?

应用服务器可以更好的相应超大用户量的访问,并杜绝sql注入等安全问题,提供动态功能的支持。

常见的应用服务器有,Tomcat、Jetty、Undertow等。应用服务器也包含http服务

在这里插入图片描述

但是一般不会做为http服务器也就是web服务器使用,经常是搭配使用

浏览器>>>>>>web服务器>>>>>应用服务器>>>>>>数据库

在这里插入图片描述

总结

  1. 服务器分静态服务器和动态服务器,web服务器是静态服务器,应用服务器是动态服务器
  2. 应用服务器也可以处理静态需求,但是由于没有web服务器那么专业,所以一般搭配使用,常见如(Nginx+Tomcat)
  3. Apache,Nginx等是静态服务器,是web服务器,也是web服务器软件
  4. tomcat是动态服务器,也可以称之为web容器、应用容器等
  5. 网站后台不是web服务器,但是当web做为一种应用来表达的时候,web服务器可能在口头上会被理解为后台。

下一篇将正式开始进入http协议的学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42217106/article/details/105583185

智能推荐

java 对象转xml_Java bean与xml 互转(对象转xml、xml转对象)-程序员宅基地

文章浏览阅读318次。importorg.jdom2.Document;importorg.jdom2.Element;importorg.jdom2.input.SAXBuilder;importorg.jdom2.output.Format;importorg.jdom2.output.XMLOutputter;import java.io.*;importjava.lang.reflect.Field;impor..._java中jdom4实现bean与xml 互转(对象转xml、xml转对象)

oracle查询控制文件的位置及其文件名,oracle的控制文件(control file)-程序员宅基地

文章浏览阅读3.7k次。控制文件是一个小小的二进制文件,是oracle数据库的一部分,这个控制文件是用于记录数据库的状态和物理结构。每个数据库必须要至少一个控制文件,但是强烈的建议超过一个控制文件,每个控制文件的备份应该放在不同的磁盘上。一:控制文件包含如下信息:1:数据库名2:数据库创建的时间戳3:数据文件的名字和位置4:redo log (联机重做日志文件)的名字和位置5:当前日志的序列号6:checkpoint 信..._所有控制文件的名称和路径。

【操作系统/OS笔记07】页面置换算法,最优、FIFO、最近最久未使用、时钟_最优页面算法-程序员宅基地

文章浏览阅读1.5k次。页面置换算法,最优、FIFO、最近最久未使用、时钟、两种全局置换算法。_最优页面算法

java byte数组转image,在Java中将字节数组转换为image(blob)-程序员宅基地

文章浏览阅读1.5k次。The code for the image conversion from byte array to image i.e blob.try{Blob image_vis = rs1.getBlob(10);InputStream x=image_vis.getBinaryStream();OutputStream out=new FileOutputStream(string_op);byte..._jave byte[]转为image

【工控协议专题01】Modbus协议原理与安全性分析_工控协议安全性分析-程序员宅基地

文章浏览阅读5.2k次,点赞9次,收藏47次。目录O、术语一、背景:二、协议原理三、传输方式四、Modbus RTU和Modbus ASCII有什么区别?五、MODBUS TCP注意点六、功能码作用七、Modbus协议安全性分析7.1Modbus 协议的固有问题7.2协议实现产生的问题7.3安全建议八、Modbus 90功能码的研究 写在前面:本博客主要结合网上资源以及本..._工控协议安全性分析

oracle里面如何查询sqlid,Oracle如何根据SQL_TEXT生成SQL_ID-程序员宅基地

文章浏览阅读4k次。本文纯属八卦,基本没有任何实用价值。Oracle总是都会通过SQL_ID来标志一个唯一的SQL。SQL_ID与SQL_TEXT一一对应。如果两个SQL文本有任何不同,包括空格等任何不可见字符,都会导致SQL_ID不同。本文八卦的内容是:Oracle如何根据SQL_TEXT内容散列成一个13位的字符串。为什么这个字符串会是13位?为什么这个字符经常以数字开头?本文参考TANEL PODER和Slav..._sqlid

随便推点

CSP-J1 CSP-S1 初赛 第1轮 第四章 阅读程序 第7节 搜索策略 2、NOIP2013-程序员宅基地

文章浏览阅读85次。CSP-J1 CSP-S1 初赛 第1轮 第四章 阅读程序 第7节 搜索策略 2、NOIP2013

MySQL水平分表原理讲解_数据库水平分表,有哪些规则?-程序员宅基地

文章浏览阅读3.7k次,点赞5次,收藏17次。什么是水平分表?当一张表到达一定的数据量后(如500万条数据),索引的成本也随之增加,使用主键索引查找数据时也显得十分吃力,数据检索效率低。水平分表是将一个数据量大的表按照一定的规则拆分成多个结构相同的表,将数据分散到拆分出来的表中。拆分后,当我们查找某条数据时,只需要按照拆分表时的规则推断出需要查询的数据具体存在哪一张表中,到对应的表查找数据即可。下图是按照时间作为规则水平拆分表的示例:常见的水平分表方案1.按时间拆分像上图中的拆分示例,采用的是按照年份水平拆分表的方案,除此之我们还_数据库水平分表,有哪些规则?

python2.7安装MySQL-python_python2.7 安装mysql fatal error c1083: cannot open i-程序员宅基地

文章浏览阅读1.4w次。一、安装1、安装MySQL-python:)https://pypi.org/project/MySQL-python/1.2.5/#files )https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python2、如果是第一种,直接安装就好了,记得勾选“C Include Files / Lib Files”。 如果是第..._python2.7 安装mysql fatal error c1083: cannot open include file: 'mysql.h':

【满分】【华为OD机试真题2023 JAVA&JS】猜字谜-程序员宅基地

文章浏览阅读2.3w次,点赞4次,收藏26次。猜字谜时间限制:1s空间限制:256MB限定语言:不限题目描述:小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下:_【满分】【华为od机试真题2023 java&js】猜字谜

jquery 选择器(name,属性,元素)大全_jquery div中name为hh的-程序员宅基地

文章浏览阅读3.6w次,点赞4次,收藏26次。jQuery 选择器大体上可分为:基本选择器、层次选择器、过滤选择器、表单选择器。 其中过滤选择器可以分为:简单过滤选择器、内容过滤选择器、可见性过滤选择器、属性过滤选择器、子元素过滤选择器、表单对象属性过滤选择器。选择器是jQuery最基础的东西,下面向大家介绍jquery+%D1%A1%D4%F1%C6%F7/" target="_blank">jquery 选择器的用法选择器是jQu..._jquery div中name为hh的

Qt界面源码 -- 各种控件以及图表_qt好看的界面源码-程序员宅基地

文章浏览阅读5.2k次,点赞10次,收藏69次。Qt界面开发(一)(各种控件以及图表) 资源已经放到 链接:https://pan.baidu.com/s/1sVvQE8uDujVxeKVVSoxyYw 密码:wslkQt界面开发(各种控件以及图表)1.Qt简洁窗体源代码链接:点击打开链接2.QT漂亮界面 源代码链接:点击打开链接3.音乐播放器界面源代码链接:点击打开链..._qt好看的界面源码