web服務器架構,websocket

1. 非前后端分離架構

1. 前端html后端servlet

被tomcat服務器打包,統一指定根目錄入口。通過原生表單發送到后端,后端根據請求數據進行重定向或請求轉發,這樣就不能進行動態渲染,也就必須存在很多靜態html對應每一個請求

這里原生表單和react的api請求表單是有區別的,原生表單通常只能通過http包裝一個簡單key,value進行傳輸。但api表單可以發送任何形式的數據,因為發送數據通過json格式進行包裝理論上可以包裝任意數量,任意形式(如value可以為列表也可以為字典)的鍵值對。

2. 前端html后端python且使用websocket

  1. 這種處理方式和前端html后端servlet基本一樣,都是通過后端的python程序或servlet程序完成頁面跳轉。
  2. 前端html同樣可以通過js原生api請求,或者導入axios發出api請求而不是原生表單請求。然后后端處理后返回數據到前端。這是正常執行curd操作(數據庫操作)的基本流程。
    但是如果遇到需要頻繁更新操作如聊天室的人數變化,聊天消息的發送的接受等就需要用到websocket而不是api請求,api請求fetch是在應用層傳輸http數據發送一次就端開適合大量數據傳輸執行curd操作,
    websocket工作在網絡層一直保持連接,快速傳輸更新少量數據,且這些數據通常是程序執行期間在內存中保存的實時數據如聊天室的人數變化,聊天消息的動態發送等。
    websocket一個很明顯的作用就是,比如當一個用戶進入了聊天室應該讓所有用戶都立即看到聊天室變化,如果此時用fetch發出http請求那么其他用戶必須手動刷新頁面才能看到變化,因為http是發送一次請求就斷開,其他用戶并不能動態感受變化,除非在前端設置自動刷新。
    但是websocket本質也是套接字雙向傳輸,工作過程是,前端點擊按鈕觸發前端socket請求,后端監聽對應事件的socket接受到請求通過后端函數更新內存數據(不是數據庫),然后在通過socket廣播修改后的數據到前端監聽對應事件的socket,然后調用前端js函數修改前端數據。

3. 前端jsp,后端servlet

雖然實現了動態頁面,但是由于jsp的動態渲染機制依然是執行java代碼而且還將java代碼和html混在一起了,所以被thymeleaf模板替代。thymeleaf模板獨立了html和java代碼。

4. 前端thymeleaf,后端sevlet

實現動態頁面,前后端代碼更加獨立,優于jsp

4. php

php和jsp很像都是將代碼直接嵌入html。但是不同的是php是一種獨立的語言,具備獨立開發后端接口的能力。實現完全的前后端分離架構,比如前端出一個api請求,ngnix服務器對api路徑的解析后,請求對應的php文件,然后將請求的php文件通過cgi接口執行后將程序結果返回給前端。就好比是前端react后端servlet中間件tomcat。

二. 前后端分離架構

前后端分離后不再需要依賴后端的動態渲染,前端頁面美化全部由前端組件本身完成后端只需要提供數據。

1. 前端react后端servlet

前端通過api向后端發出請求,后端處理后返回數據到前端,前端自己通過數據渲染自己。

2. php

前端出一個api請求,ngnix服務器對api路徑的解析后,請求對應的php文件,然后將請求的php文件通過cgi接口執行后將程序結果返回給前端。就好比是前端react后端servlet中間件tomcat。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65509.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65509.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65509.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu 下測試 NVME SSD 的讀寫速度

在 Ubuntu 系統下,測試 NVME SSD 的讀寫速度,有好多種方法,常用的有如下幾種: 1. Gnome-disks Gnome-disks(也稱為“Disks”)是 GNOME 桌面環境中的磁盤管理工具,有圖形界面,是測試…

SpringBoot之核心配置

學習目標: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件屬性值注入 3.熟悉Spring Boot自定義配置 4.掌握Profile多環境配置 5.了解隨機值設置以及參數間引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…

后端服務集成ElasticSearch搜索功能技術方案

文章目錄 一、為什么選用ElasticSearch二、ElasticSearch基本概念1、文檔和字段2、索引和映射3、倒排索引、文檔和詞條4、分詞器 三、ElasticSearch工作原理1、Term Dictionary、Term index2、Stored Fields3、Docs Values4、Segment5、Lucene6、高性能、高擴展性、高可用①高性…

舉例說明AI模型怎么聚類,最后神經網絡怎么保存

舉例說明怎么聚類,最后神經網絡怎么保存 目錄 舉例說明怎么聚類,最后神經網絡怎么保存K - Means聚類算法實現神經元特征聚類劃分成不同專家的原理和過程 特征提取: 首先,需要從神經元中提取有代表性的特征。例如,對于一個多層感知機(MLP)中的神經元,其權重向量可以作為特…

ocrmypdf使用時的cannot import name ‘PdfMatrix‘ from ‘pikepdf‘問題

最近在做pdf的ocr,之前使用過ocrmypdf,打算再次使用,發現它更新了,所以就打算使用最新版 環境:win11anaconda 創建虛擬環境后安裝語句: pip install ocrmypdf -i https://pypi.tuna.tsinghua.edu.cn/simple pip in…

【JavaEE進階】獲取Cookie/Session

🍀Cookie簡介 HTTP協議自身是屬于 "?狀態"協議. "?狀態"的含義指的是: 默認情況下 HTTP 協議的客?端和服務器之間的這次通信,和下次通信之間沒有直接的聯系.但是實際開發中,我們很多時候是需要知道請求之間的關聯關系的. 例如登陸?站成…

Oracle:ORA-00904: “10“: 標識符無效報錯詳解

1.報錯Oracle語句如下 SELECT YK_CKGY.ID,YK_CKGY.DJH,YK_CKGY.BLRQ,YK_CKGY.ZBRQ,YK_CKGY.SHRQ,YK_CKGY.YT,YK_CKGY.ZDR,YK_CKGY.SHR,YK_CKGY.BZ,YK_CKGY.JZRQ,YK_CKGY.ZT,YK_CKGY.CKLX,(case YK_CKGY.CKLXwhen 09 then藥房調借when 02 then科室退藥when 03 then損耗出庫when…

Linux 磁盤管理命令:使用xfs 管理命令

文章目錄 Linux磁盤管理命令使用xfs 管理命令1.命令說明2.建立 XFS 文件系統4.調整 XFS 文件系統各項參數5.在線調整 XFS 文件系統的大小6.暫停和恢復 XFS 文件系統7.嘗試修復受損的 XFS 文件系統8.備份和恢…

《Spring Framework實戰》3:概覽

歡迎觀看《Spring Framework實戰》視頻教程 Spring Framework 為基于現代 Java 的企業應用程序提供了全面的編程和配置模型 - 在任何類型的部署平臺上。 Spring 的一個關鍵要素是應用程序級別的基礎設施支持:Spring 專注于企業應用程序的 “管道”,以便…

借助免費GIS工具箱輕松實現las點云格式到3dtiles格式的轉換

在當今數字化浪潮下,地理信息系統(GIS)技術日新月異,廣泛滲透到城市規劃、地質勘探、文化遺產保護等諸多領域。而 GISBox 作為一款功能強大且易用的 GIS 工具箱,以輕量級、免費使用、操作便捷等諸多優勢,為…

均值濾波從圖像復原角度的解釋

廖老師說若將圖像生成看作一個隨機過程,均值濾波(Mean Filtering)可以視為在高斯噪聲模型下的線性最小均方估計(Linear Minimum Mean Squared Error, LMMSE)或者極大似然估計(Maximum Likelihood Estimatio…

高等數學學習筆記 ? 一元函數微分的基礎知識

1. 微分的定義 (1)定義:設函數在點的某領域內有定義,取附近的點,對應的函數值分別為和, 令,若可以表示成,則稱函數在點是可微的。 【 若函數在點是可微的,則可以表達為】…

linux之自動掛載

如果想要實現自動掛載,應該掛在客戶端!!!!! 客戶端: [rootlocalhost ~]# yum install nfs-utils -y (下載軟件) [rootlocalhost ~]# systemctl start nfs-utils.servic…

用戶界面軟件01

Jens Coldewey 著,Tom.X 譯 本文中的模式語言逐步深入地探討用戶界面架構的設計,它基于人機工程學,足以形成一套完整的體系。如果你對這方面有興趣,請參考[Tog92],[Coo95]和[Col95]。 本文不討論用戶界面的布局&…

Spring整合SpringMVC

目錄 【pom.xml】文件; 新建【applicationContext.xml】文件 新建【springmvc.xml】文件; 配置【src/main/webapp/WEB-INF/web.xml】文件; 新建【com.gupaoedu.service.IUserService】; 新建【com.gupaoedu.service.impl.Use…

【數據結構-堆】2233. K 次增加后的最大乘積

給你一個非負整數數組 nums 和一個整數 k 。每次操作,你可以選擇 nums 中 任一 元素并將它 增加 1 。 請你返回 至多 k 次操作后,能得到的 nums的 最大乘積 。由于答案可能很大,請你將答案對 109 7 取余后返回。 示例 1: 輸入&…

2025.1.8(c++對c語言的擴充——堆區空間,引用,函數)

筆記 上一筆記接續(練習2的答案) 練習:要求在堆區連續申請5個int的大小空間用于存儲5名學生的成績,分別完成空間的申請、成績的錄入、升序排序、成績輸出函數以及空間釋放函數,并在主程序中完成測試 要求使用new和d…

(長期更新)《零基礎入門 ArcGIS(ArcScene) 》實驗七----城市三維建模與分析(超超超詳細!!!)

城市三維建模與分析 三維城市模型已經成為一種非常普遍的地理空間數據資源,成為城市的必需品,對城市能化管理至關重要。語義信息豐富的三維城市模型可以有效實現不同領域數據與IS相信息的高層次集成及互操作,從而在城市規劃、環境模擬、應急響應和輔助決策等眾多領域公揮作用、…

在離線環境中安裝 `.rpm` 包的步驟

在一些環境中,可能無法直接通過網絡安裝軟件包。特別是在沒有互聯網連接的情況下,我們仍然可以手動下載 .rpm 安裝包并進行離線安裝。本文將介紹如何在離線環境中安裝多個 .rpm 包,確保軟件的順利安裝和依賴關系的處理。 1. 將 .rpm 文件復制…

【人工智能開題報告】

人工智能開題報告 第一步 12 篇文獻 應用(研究)領域歷史、現狀、發展趨勢以及對社會、環境、健康、安全等方面的影響分析第二步 15篇 應用(研究)領域中的 工作成果簡述2.1 國外 6篇2.2 國內 9篇 第三步 9/10篇 研究方案 的分析與選…