WEB服务器相关的概念介绍

HTTP服务器和Web服务器

起源

最早的HTTP服务器是CERN httpd,它是由欧洲核子研究组织(CERN)的蒂姆·伯纳斯-李(Tim Berners-Lee)于1990年编写的,它是HTTP协议的第一个版本,即HTTP/0.9。

名词

Web服务器是一种网络服务,它可以提供Web内容(例如HTML文件、图像、CSS文件等)给客户端。Web服务器通常使用HTTP协议来与客户端进行通信。当客户端发送HTTP请求时,Web服务器会解析请求,并将请求的资源返回给客户端。

HTTP服务器是一种网络服务,它可以提供HTTP服务(例如处理HTTP请求、响应HTTP响应等)。HTTP服务器通常用于提供Web内容。

Web服务器和HTTP服务器通常被认为是同一件事情的两种描述,web侧重功能,http侧重实现技术。

HTTP服务器的功能包括:

  • 接收客户端请求
  • 处理请求
  • 发送响应
  • 处理错误

以前,Web服务器和HTTP服务器是分开的。Web服务器负责处理Web内容,而HTTP服务器负责处理HTTP请求。但是,现在,Web服务器和HTTP服务器通常是一体的。Web服务器通常包含HTTP服务器,因此它们可以同时处理Web内容和HTTP请求。

应用服务器

起源

最开始,HTTP服务器只提供静态的内容。但是,随着Web应用程序的发展,HTTP服务器需要提供动态内容。因此,应用服务器出现了。

最早的应用服务器之一是WebLogic,它于1995年发布。WebLogic最初是由一家名为Tengah Software的公司开发的,后来被BEA Systems收购。WebLogic是一个Java EE应用服务器,它可以用于构建和部署企业级Java应用程序。

应用服务器是一种软件,它提供了一些服务,例如事务管理、安全性、并发性和多线程支持等。应用服务器是在HTTP服务器之上运行的,它们可以处理动态内容,例如Java Servlet和JavaServer Pages(JSP)等。

HTTP服务器和应用服务器之间的关系是:应用服务器是HTTP服务器的扩展,它们可以处理动态内容,例如Java Servlet和JavaServer Pages(JSP)等。

现在,最常见和最流行的应用服务器是Apache Tomcat,它是一个开源的Java Servlet容器,它可以用于构建和部署Java Servlet和JSP等Web应用程序。

应用服务器也被称为Web容器,因为它们可以容纳Web应用程序。

Web容器是怎么工作的

Java Web应用程序的生命周期通常由Servlet容器(例如Tomcat)管理。以下是Java Web应用程序的生命周期:

  • 加载:当Servlet容器启动时,它会加载Web应用程序。在加载过程中,Servlet容器会读取Web应用程序的配置文件,并将Web应用程序的类文件加载到内存中。
  • 初始化:在加载完成后,Servlet容器会调用Web应用程序中所有Servlet的init()方法。在init()方法中,Servlet可以执行一些初始化操作,例如读取配置文件、建立数据库连接等。
  • 处理请求:当客户端发送HTTP请求时,Servlet容器会根据请求的URL选择相应的Servlet来处理请求。在处理请求之前,Servlet容器会创建一个HttpServletRequest对象和一个HttpServletResponse对象,并将它们传递给相应的Servlet。
  • 销毁:当Servlet容器关闭时,它会调用Web应用程序中所有Servlet的destroy()方法。在destroy()方法中,Servlet可以执行一些清理操作,例如关闭数据库连接、释放资源等。

CGI

起源

CGI(通用网关接口)是一种标准,它定义了Web服务器和Web应用程序之间的接口。CGI是一种旧的技术,它于1993年发布。

FastCGI是CGI的改进版本,它可以在Web服务器和Web应用程序之间建立一个长连接,从而避免了每次请求都要重新启动CGI进程的问题。FastCGI还可以通过多线程或多进程来处理多个请求,从而提高了Web应用程序的并发性能。

FCGI是FastCGI的一种实现方式,它是一个开源的CGI管理器,可以管理多个FastCGI进程。FCGI可以通过多线程或多进程来处理多个请求,从而提高了Web应用程序的并发性能。

虽然FastCGI和FCGI都可以提高Web应用程序的并发性能,但它们也有一些缺点。例如,它们需要占用更多的系统资源,而且它们的配置比较复杂。此外,现代Web服务器和Web框架已经提供了更好的替代方案,如WSGI、ASP.NET Core等。

HTML

起源

HTML(超文本标记语言)是一种标记语言,它用于创建Web页面。HTML于1993年发布,它是Web开发的基础。

Javascript

JavaScript是一种脚本语言,它用于创建Web页面的交互式部分。JavaScript于1995年发布,它是Web开发的基础。

CSS

CSS(层叠样式表)是一种样式表语言,它用于定义Web页面的样式。CSS于1996年发布,它是Web开发的基础。

WebPack和vite

WebPack和vite是两种前端构建工具,它们都可以将多个JavaScript文件打包成一个JavaScript文件,从而减少了浏览器加载JavaScript文件的次数,提高了Web应用程序的性能。
vite是WebPack的替代方案,它比WebPack更快,更易于使用。

前端和后端

通常概念

前端和后端是Web开发中的两个关键概念。
前端指的是Web应用程序的用户界面,即用户在浏览器中看到的所有内容,包括文本、图像、按钮等。
前端开发人员使用HTML、CSS和JavaScript等技术来创建Web应用程序的用户界面。
后端指的是Web应用程序的服务器端,它处理Web应用程序的业务逻辑和数据存储。
后端开发人员使用Java、Python、Ruby等编程语言来编写Web应用程序的服务器端代码。

我的解释

前端运行在浏览器中,后端运行在服务器中。

有一种奇特的技术,就是JSP/ASP/PHP,虽然它们是后端技术,但是它们的代码经过转换后是运行在前端的,这是因为它们的代码是在服务器中运行的,而不是在浏览器中运行的。
这一点与VUE等前端的框架是不同的。

目前,JSP/ASP/PHP等技术已经不流行了,取而代之的是VUE等前端框架。
下面是一个简单的jsp程序

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    out.println("hello world");
%>
</body>
</html>

这个程序的运行结果是在浏览器中显示hello world,
<%
out.println(“hello world”);
%>
这是因为这个程序是在服务器中运行的,而不是在浏览器中运行的。

微服务

起源

微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTP API通讯。

什么是微服务

微服务(或称微服务架构)是一种云原生架构方法,在单个应用中包含众多松散耦合而且可单独部署的小型组件或服务。这些服务通常拥有自己的技术栈,包括数据库和数据管理模型;通过一个 REST API、事件流和消息代理组合彼此通信;以及按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。

常见的微服务构建工具:

  1. Seneca:一个用于Node.js的微服务工具包,可以轻松构建基于消息的微服务流程。
  2. fabric8:一个开源平台即服务工具,可以通过git提供配置管理系统,处理IP地址复杂性和端口映射,并能够对服务执行负载平衡。fabric8还提供了可伸缩性和高可用性。
  3. Google Cloud Functions:谷歌云平台的云功能 (BETA)是轻量级的、无服务器的、易于部署和维护的。控制台为通过事件驱动体系结构构建解耦微服务应用程序的开发人员提供了真正的好处。
  4. TIBCO Cloud Integration:一个集成平台,可以轻松地将应用程序、数据和API连接到云中的其他应用程序、数据和API。
  5. Kong:一个开源API网关和微服务管理层,可以帮助您管理API和微服务,并确保它们在生产环境中可靠运行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值