导读 8月科学教育网小李来为大家讲解下。web服务器端软件,web服务器软件版本)这个很多人还不知道,现在让我们一起来看看吧!四种不同的架构风格...

8月科学教育网小李来为大家讲解下。web服务器端软件,web服务器软件版本)这个很多人还不知道,现在让我们一起来看看吧!

四种不同的架构风格

典型的企业级应用系统或互联网应用系统,一般通过 Web 提供一组业务服务能力。这类系统包括提供给用户操作的、运行于浏览器中具有 UI 的业务逻辑展示和输入部分,运行于服务器端、 用后端编程语言构建的业务逻辑处理部分,以及用于存储业务数据的关系数据库或其他类型的存储软件。

根据软件系统在运行期的表现风格和部署结构,我们可以粗略地将其划分为两大类:

(1)整个系统的所有功能单元整体部署到同一个进程(所有代码可以打包成一个或多个文件),我们可以称之为“单体架构”(Monolithic Architecture)。

(2)整个系统的功能单元分散到不同的进程,然后由多个进程共同提供不同的业务能力,我们称之为“分布式架构”(Distributed Architecture)。

再结合软件系统在整个生命周期的特点,我们可以进一步区分不同的架构风格。

对于单体架构,我们根据设计期和开发实现期的不同模式和划分结构,可以分为:

● 单体模式———代码层面没有拆分,所有的业务逻辑都在一个项目(project)里打 包成一个编译后的二进制文件,通过这个文件进行部署,并提供业务能力; 如图2 所示。

● MVC模式———系统内每个模块的功能组件按照不同的职责划分为模型(Model)、视 图(View)、控制器(Controller)等角色,并以此来组织研发实现工作; 如图3 所示。

●  前后端分离模式———将前后端代码耦合的设计改为前端逻辑和后端逻辑独立编写实现 的处理模式;如图4所示。

●  组件模式———系统的每一个模块拆分为一个子项目(subproject),每个模块独立编译 打包成一个组件,所有需要的组件一起再部署到同一个容器里;如图5所示。

● 类库模式———A系统需要复用B系统的某些功能,这时可以直接把B系统的某些组件作为依赖库,打包到 A 系统来使用。 如图6所示

对于分布式架构,我们根据设计期的架构思想和运行期的不同结构,可以分为:

●  面向服务架构(Service Oriented Architecture,SOA)——— 以业务服务的角度和服务总 线的方式(一般是 WebService 与 ESB)考虑系统架构和企业 IT 治理;

●  分布式服务架构(Distributed Service Architecture,DSA)———基于去中心化的分布式 服务框架与技术,考虑系统架构和服务治理;

●  #微服务架构#(Micro Services Architecture,MSA)————微服务架构可以看作面向服务架 构和分布式服务架构的拓展,使用更细粒度的服务(所以叫微服务)和一组设计准则 来考虑大规模的复杂系统架构设计。如图6所示。

此外,传统的企业集成领域的 EAI 架构模式,各个系统还是独立部署的,但是各个系统之 间的部分业务使用特定的技术打通了,因此我们可以看作单体和分布式之间的过渡状态。如图7 所示。

上面这些,可以总结为架构发展的四大阶段,如图1所示。

#企业应用架构##单体架构##架构设计##MVC模式##面向服务架构#

Caddy是一个缺省支持TLS的可扩展Web服务器平台,采用Go语言编写实现。目前宣布,已经缺省支持HTTP/3协议了。Caddy通常被用来作为HTTPS服务器使用,但是,它本质上是一个为后端应用服务器提供服务的服务器,同样适合作为一个长期运行的Go程序。

Caddy最重要的功能是:它是一个可以运行Go应用程序的平台。在这个平台下,只要是实现了Caddy模块的Go程序,那么,它们都可以作为Caddy的一个服务器应用,Caddy内置的两个最实用的应用就是tls和http。

Caddy的另一个特点是:它的配置是动态的,而且可以使用Caddy API进行导出,尽管不需要配置文件,但是,你同样也可以为其提供配置文件,而且还可以通过适配器支持多种格式的配置文件,比如Caddyfile、JSON或是TOML格式等。

项目地址:网页链接

#如何选择开源软件才能控制企业成本# #caddy#

Go语言不但自身功能强大,而且还要带领众兄弟们一起强大,这次Go语言算是拉PHP语言一把,由Go语言实现的Caddy Web服务器做底层支撑,FrankenPHP项目也是由Go语言实现,它则提供了一个现代化PHP应用服务器。

FrankenPHP凭借其超强的能力,提供了几个优秀的能力支持,包括早期提示、worker模式、实时功能和自动HTTPS、HTTP/2和HTTP/3支持。

FrankenPHP可以与任意PHP应用程序一起使用,并且由于提供了与Worker模式的集成,你的Symfony项目执行速度比以往任何时候都要快,Worker模式不单单是支持Symfony项目,Laravel Octane项目马上也就会被支持了。

FrankenPHP另一个用途是可以作为一个独立的Go语言应用程序,它可以嵌入到任何的net/http应用程序中,也就是说,你可以很轻松地通过Go语言实现一个PHP应用服务器。

项目地址:https://github.com/dunglas/frankenphp

#头条创作挑战赛# #如何选择开源软件才能控制企业成本# #frankenphp#

#web##app##http##传输协议##程序员#

应用程序主要的通信协议。

HTTP(超文本传输协议)是分布式、协作和超媒体信息系统的应用协议。HTTP 是万维网数据通信的基础。超文本是在包含文本的节点之间使用逻辑链接(超链接)的结构化文本。HTTP 是交换或传输超文本的协议。

HTTP/2旨在解决原始 HTTP 协议的缺点并提高性能。HTTP/2 比 HTTP/1.1 更快、更高效,并且它支持多路复用以允许在单个连接上多路复用多个请求和响应。其他值得注意的功能包括标头压缩和服务器推送。它逐渐成为网络流量的默认协议。

WebSocket是一种允许客户端和服务器之间进行双向通信的协议。它是处理实时数据的应用程序的热门选择,例如聊天应用程序、在线游戏和实时数据流。

gRPC是一个使用 HTTP/2 进行传输的现代开源RPC框架。对于需要进行大量小型、快速 API 调用的应用程序来说,这是一个很好的选择。gRPC 为多种语言生成跨平台的客户端和服务器绑定,使客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就好像它是本地对象一样。

WebRTC是一种允许客户端之间进行实时通信并使建立直接对等连接成为可能的技术。它用于视频、聊天、文件共享和实时视频流应用。

Web开发框架性能测试(Tech Empower)排名第一的是大名鼎鼎的C++ Drogon

1. C++ 14/17 Web应用开发框架

2.采用非阻塞异步IO,每秒处理高达150K个请求(单核Ryzen 3700X)

3. C++协程支持

4. RDBMS和Redis支持

5.支持Linux/Windows/OS X/各种BSD,x86/ARM/s390x等等,很好的移植性

6.它是一个HTTP应用服务器,但又不仅仅是个HTTP服务器,还可以是一个HTTP客户端,还支持WebSockets协议

7.支持HTTP 1.0/1.1

8.支持后端渲染

9.支持HTTPS

......

官方地址:Homepage | Drogon Web Framework

项目地址:GitHub - drogonframework/drogon: Drogon: A C++14/17/20 based...

本文web服务器端软件,web服务器软件版本)到此分享完毕,希望对大家有所帮助。