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

智能推荐

Subnet简介-程序员宅基地

文章浏览阅读2.9w次,点赞2次,收藏13次。Subnet(子网)在一般的概念中,有两个基本含义:1 这个子网的网段(CIDR)和IP版本;2 这个子网的路由(含默认路由)。事实上,Subnet模型也确实有这两个字段cidr和ip_version,分别表示一个子网的网段和IP版本。另外Subnet模型还有两字段gateway_ip和host_routes,表示一个子网的路由信息。gateway_ip是这个子网的默认网关IP。host_rout..._subnet

HBase的列族必须提前定义-程序员宅基地

文章浏览阅读282次,点赞4次,收藏7次。在HBase中,列族(Column Family)必须在创建表时提前定义,而列(Column)是动态添加的,无需提前定义。一旦表创建完成并列族定义好之后,可以动态地向表中的列族中添加新的列,而无需修改表的结构。2. **列是动态添加的:** 列是在列族内动态添加的,无需提前定义。而列是动态添加的,可以根据需要随时向列族中添加新的列。1. **列族必须提前定义:** 在创建HBase表时,需要指定表的列族,每个列族都需要提前定义。列族的定义是静态的,一旦表创建完成并列族定义好之后,列族的结构就不能再改变了。

人工智能伦理框架:如何建立AI技术的道德规范-程序员宅基地

文章浏览阅读365次,点赞6次,收藏9次。1.背景介绍人工智能(AI)技术的发展已经进入了关键时期,它正在改变我们的生活、经济和社会结构。然而,随着AI技术的不断发展,也引发了一系列道德、伦理和法律问题。为了确保AI技术的可持续发展和社会接受,我们需要建立一个人工智能伦理框架,以指导AI技术的研发和应用。在过去的几年里,许多学者、企业家、政府机构和非政府组织都开始关注AI伦理问题,并提出了许多关于AI伦理的建议和规范。然而,这些建..._人工智能道德框架

我个人总结的Halcon内存管理心得笔记,关于C#/C++内存释放_halcon dispose-程序员宅基地

文章浏览阅读1.4w次,点赞15次,收藏105次。Halcon容易造成内存增长或泄露。怎么办?C#1、变量用完之后,Dispose()和置Null。在Halcon18以上版本,Halcon已经提供了Dispose()方法进行释放,那么在低版本中HTuple类型占用的内存怎么释放呢?其实,Halcon中提供一个叫UnPinTuple()的方法,该方法就是官方用来进行释放HTuple的!所以,使用后的变量如不再继续使用的可以用该方法进行清除释放。2、图像尽量不要复制,固定在一个变量进行处理。3、在软件内存占用率高,并且软件闲置的时候,._halcon dispose

SQL 语言及查询优化技巧-程序员宅基地

文章浏览阅读719次。SQL (Structured Query Language,结构化查询语言),一种专门用来管理关系数据库(RDBMS)的语言。它用于存取、操纵和维护关系数据库中的数据,尤其是保存着各种相关信息的表格。由于其标准化,可移植性强,而且易于学习和应用,所以在各个行业都得到广泛应用。与其他编程语言相比,SQL 的学习难度较低,语法简单,执行效率高。同时,SQL 有完善的函数库支持,能够实现丰富的数据处理功能,如数据检索、过滤、排序、汇总等。

java程序:调用百度api进行情感分析-程序员宅基地

文章浏览阅读684次,点赞2次,收藏4次。源码:package com.jeson.ceshi;import java.util.HashMap;import org.json.JSONObject;import com.baidu.aip.nlp.AipNlp;public class demo { //设置APPID/AK/SK public static final ..._java百度云情感api

随便推点

linux操作系统有哪些_linux系统有什么-程序员宅基地

文章浏览阅读7.4k次。微信设置水滴昵称,个性中带点萌区别:(1)Linux速度比较快,安全性比windows好 (2)有很多软件只能在windows里运行 ,与Linux兼容的软件正在开发中. (3)Linux适用在网络方面. (4)Linux的操作比较复杂,windows的比较简单. Linux和Windows的区别 和Linux 一样,Windows系列是完全的多任务操作系统。它们支持同样的用户接口 、网络和安全性。但是,Linux和Windows的真正区别在于,Linux 事实上是Unix 的一种版本,而且来_linux系统有什么

K8s 为什么要弃用 Docker_kubenetes为什么1.24弃用docker-程序员宅基地

文章浏览阅读1w次,点赞15次,收藏24次。最近在学习容器技术的过程中,看到有关于Kubernetes“弃用 Docker”的事情,担心现在学 Docker 是否还有价值,是否现在就应该切换到 containerd 或者是其他 runtime。随着深入了解,这些疑虑的确是有些道理。三年前,Kubernetes 放出消息要“弃用 Docker”的时候,确确实实在 Kubernetes 社区里掀起了一场“轩然大波”,影响甚至波及到社区之外,也导致 Kubernetes 不得不写了好几篇博客来反复解释这么做的原因。_kubenetes为什么1.24弃用docker

IDEA 简单自动化部署 Alibaba Cloud Toolkit_idea的 alibaba cloud tookit下载-程序员宅基地

文章浏览阅读1w次。在没有jenkins环境下,特别是在快速更新版本的情况下,来回部署很花时间,所以博主找到了这个方法。注意:最好是简单的单应用部署首先,在IDEA插件库搜索Alibaba Cloud Toolkit,如下图,安装完成后重启IDEA即可用如果在内网环境下,先下载【离线包】确保 IntelliJ 版本 2018.2.* 及以上http://toolkit.aliyun.com/i..._idea的 alibaba cloud tookit下载

Spark操作mysql-程序员宅基地

文章浏览阅读56次。2019独角兽企业重金招聘Python工程师标准>>> ..._spark执行mysql语句

高光谱图像分类--HybridSN: Exploring 3-D–2-DCNN Feature Hierarchy for Hyperspectral Image Classification_hybridsn: exploring 3-d–2-d cnn feature hierarchy -程序员宅基地

文章浏览阅读2.7k次。《HybridSN: Exploring 3-D–2-DCNN Feature Hierarchy for Hyperspectral Image Classification》S. K. Roy, G. Krishna, S. R. Dubey, B. B. Chaudhuri HybridSN: Exploring 3-D–2-D CNN Feature Hierarchy for Hyperspectral Image Classification, IEEE GRSL 2020这篇论文构建了一个_hybridsn: exploring 3-d–2-d cnn feature hierarchy for hyperspectral image c

ftp 报错 553 Could not create file_553 could not create file.-程序员宅基地

文章浏览阅读1.3w次,点赞9次,收藏15次。在使用 ftp put 命令进行文件上传时报错。ftp 报错 553 Could not create file_553 could not create file.

推荐文章

热门文章

相关标签