后端開發概念

1. 后端開發概念解析

1.1. 什么是服務器,后端服務

1.1.1. 服務器

服務器是一種提供服務的計算機系統,它可以接收、處理和響應來自其他計算機系統(客戶端)的請求。服務器主要用于存儲、處理和傳輸數據,以便客戶端可以通過網絡訪問這些數據或服務。服務器可以是硬件設備,也可以是運行在硬件上的軟件。

硬件角度來看,服務器以機器的形式存在各個機房類似我們的PC電腦,實際是一個硬件設備。

軟件角度來看,服務器是運行在硬件設備上的軟件,我們通過代碼寫后端服務,接收請求,處理邏輯:

  1. nginx應用服務器
  2. 類似Flask的程序邏輯服務器

1.1.2. 后端服務

在計算機科學中,后端服務通常是指應用程序的后端部分,負責處理業務邏輯、與數據庫交互、執行算法等。后端服務通常運行在服務器上,提供數據和功能給客戶端。它可以通過不同的協議(例如,HTTP、WebSocket)與前端或其他服務通信。

關于后端服務的一些關鍵概念:

  1. 業務邏輯: 后端服務包含應用程序的業務邏輯,負責處理用戶請求、執行特定的功能和操作。
  2. 數據庫交互: 后端服務通常需要與數據庫進行交互,包括讀取和寫入數據,以及執行數據庫查詢和更新操作。
  3. API(應用程序接口): 后端服務通過API與前端或其他服務通信。API定義了可用于訪問后端功能和數據的協議和終點。
  4. 安全性: 后端服務通常需要實施安全措施,以確保數據的機密性和完整性。這可能包括身份驗證、授權、數據加密等。
  5. 性能和可伸縮性: 后端服務需要具備足夠的性能和可伸縮性,以處理大量的并發請求,并在需要時進行水平擴展。
  6. 服務端技術: 后端服務可以使用不同的編程語言和框架實現,如Java(Spring Boot)、Python(Django、Flask)、Node.js、Ruby(Ruby on Rails)等。

總的來說,后端服務是構成分布式應用架構中的一部分,通過處理業務邏輯和數據管理,為前端或其他客戶端提供服務。在現代應用程序中,通常采用前后端分離的架構,使得前端和后端能夠獨立開發和部署。我們學的后端技術,就是為了開發、部署、維護后端服務

1.2. 正式工作中的不同環境

在軟件開發中,尤其是后端程序開發,通常會涉及多個不同的環境,以便進行開發、測試和部署。以下是一些常見的后端程序環境:

1. 開發環境(Development Environment):

用途:用于開發和調試代碼。

特點:通常配置為開發人員本地機器上的環境,包含開發所需的所有工具、庫和服務。

2. 測試環境(Testing Environment):

用途:用于進行單元測試、集成測試和系統測試。

特點:盡可能模擬生產環境,但通常規模較小,用于檢測和解決代碼中的問題。

3. 預發布環境(Staging Environment):

用途:用于測試部署到生產環境之前的最終版本。

特點:模擬生產環境,并使用生產環境相似的硬件和軟件配置。

4. 生產環境(Production Environment):

用途:運行實際的生產應用程序,提供服務給最終用戶。

特點:具有高可用性、性能優化和安全性,通常包括負載均衡、故障恢復機制等。

這些環境的設置有助于確保開發人員能夠在相對隔離的環境中進行工作,同時在生產環境之前檢測和解決潛在的問題。這也有助于提高軟件質量、可靠性和可維護性。

1.3. 前后端交互流程

在 Web 開發中,前端和后端是通過 HTTP 協議進行通信的。前端負責展示用戶界面,而后端負責處理業務邏輯、與數據庫交互以及提供數據和服務。以下是它們之間協作的一般過程:

1. 前端請求(Request):

  • 用戶在瀏覽器中輸入 URL 或者與前端頁面進行交互,觸發了一個 HTTP 請求。
  • 請求中包含了與服務端通信所需的信息,如參數、頭部信息等。

2. 后端處理請求:

  • 服務器接收到請求后,后端應用程序開始處理它。
  • 后端應用程序執行業務邏輯,可能包括從數據庫中檢索數據、驗證用戶身份、計算等。

3. 數據庫交互:

  • 如果業務邏輯需要與數據庫交互,后端會執行相應的數據庫查詢或更新操作。

4. 生成響應(Response):

  • 后端應用程序生成一個 HTTP 響應,其中包含了處理結果、數據等。
  • 響應通常是一個包含數據的 JSON 對象,也可以包括其他資源如圖片、文件等。

5. 前端接收響應:

  • 瀏覽器接收到后端的響應后,前端開始解析響應,提取出所需的數據。

6. 更新用戶界面:

  • 前端使用從后端獲取的數據更新用戶界面,可能涉及到更新頁面內容、刷新列表、顯示錯誤消息等。

7. 用戶交互:

  • 用戶與前端界面進行交互,可能觸發新的請求,形成新的請求-響應循環。

這種前后端協作的方式被稱為前后端分離(Frontend-Backend Separation)或前后端分離架構。在這種架構中,前端和后端是獨立的系統,通過定義好的接口進行通信。這使得可以使用不同的技術棧來開發前端和后端,同時也更容易實現代碼的重用和維護。

常見的前后端通信方式包括使用 RESTful API、GraphQL 等。RESTful API 是一種使用 HTTP 請求進行通信的方式,而 GraphQL 則允許前端請求指定其需要的數據結構。

1.4. 前后端開發流程

假如要開發一個根據商品名稱查詢商品信息的功能(比如網頁搜索商品),這用HTTP協議舉例。

1. 前后端定義好接口傳輸的協議格式,一般都是json格式

2. 定義好HTTP請求方法、接口名字、前端傳參、后端返回的參數。

確定HTTP請求方法:

因為是查詢功能,根據RESTful url的規定,HTTP請求方法是請求資源的動作,所以用GET請求。

接口名字:

起一個有意義的名字,這里是根據商品名稱查詢商品信息,因此接口路由起名叫 /search;

當前用 /query_by_name 也可以,合理即可;

前端將把請求發給這url,進行HTTP請求。

前端請求協議 request:

查詢商品,那么我們要傳入商品名稱;

定義好參數名稱,和參數value的數據結構,這里是string。

后端響應協議 response:

查詢的結果可能如上圖所示,這里在開發前應該找需求方確認好需求,心里有預期

需要給前端的信息:

我們可能只有需要知道商品的價格、名稱、描述、店家、評價數目等。

搜索會搜索出很多商品信息,所以應該返回Json數組

開發:確認協議后前后端各自開發,互不影響

自測:根據協議,使用postman等工具,構造數據,測試樣例進行自測,保證開發的后端功能正確,并且不影響其他接口

自測方式:使用postman等工具

本地多打日志觀察數據正確性

前后端聯調:

自測確認沒問題了,和前端同學一起聯調,實際上就是前端真正請求你后端接口的數據,觀察前后端在真正請求時候的正確與否

如果聯調有問題,再及時修改

提交代碼,項目部署上線

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

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

相關文章

Spring AI 源碼解析:Tool Calling鏈路調用流程及示例

Tool工具允許模型與一組API或工具進行交互,增強模型功能,主要用于: 信息檢索:從外部數據源檢索信息,如數據庫、Web服務、文件系統或Web搜索引擎等 采取行動:可用于在軟件系統中執行特定操作,如…

Spyglass:跨時鐘域同步(長延遲信號)

相關閱讀 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 簡介 長延遲信號方案用于控制或數據信號跨時鐘域同步,該方案將使用quasi_static約束的跨時鐘域信號視為已同步,如圖1所示。 // test.sgdc q…

Linux云計算訓練營筆記day13【CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM】

Linux云計算訓練營筆記day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目錄 Linux云計算訓練營筆記day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find練習2.vim高級使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…

網絡流量分析工具ntopng的安裝與基本使用

網絡流量分析工具ntopng的安裝與基本使用 一、ntopng基本介紹1.1 ntopng簡介1.2 主要特點1.3 使用場景 二、本地環境介紹2.1 本地環境規劃2.2 本次實踐介紹 三、安裝ntopng工具3.1 官網地址3.2 配置軟件源3.3 添加軟件源3.4 安裝ntopng 四、ntopng的基本配置4.1 修改配置文件4.…

數據的獲取與讀取篇---常見的數據格式JSON

文件格式 假如你有一份想分析的數據文件,獲得文件后下一步就是用代碼讀取它。不同的文件格式有不同的讀取方法。所以讀取前了解文件格式也很重要。你可能見過非常多的文件格式,例如TXT、MP3、PDF、JPEG等等。 一般可以通過文件的后綴來分辨文件的格式,例如TXT格式,一般保存…

人工智能發展

探秘人工智能領域的熱門編程語言與關鍵知識 在當今科技飛速發展的時代,人工智能已滲透到生活的各個角落,從智能語音助手到精準的推薦系統,從自動駕駛汽車到醫療影像診斷,人工智能正以前所未有的速度改變著世界。而在這背后&#x…

超全GPT-4o 風格提示詞案例,持續更新中,附使用方式

本文匯集了各類4o風格提示詞的精選案例,從基礎指令到復雜任務,從創意寫作到專業領域,為您提供全方位的參考和靈感。我們將持續更新這份案例集,確保您始終能夠獲取最新、最有效的提示詞技巧。 讓我們一起探索如何通過精心設計的提…

Vue3響應式數據: 深入分析Ref與Reactive

Vue3響應式數據: 深入分析Ref與Reactive 介紹 作為一個流行的前端框架,其響應式數據系統是其核心特性之一。在Vue3中,我們可以使用Ref和Reactive兩種方式來創建響應式數據。本文將深入分析Ref與Reactive,幫助讀者更好地理解Vue3的響應式數據系…

云計算,大數據,人工智能

1. 云計算:彈性資源與分布式計算 案例:基于AWS EC2的動態資源擴展 場景:電商網站在“雙十一”期間流量激增,需要臨時擴容服務器資源。 代碼:使用AWS Boto3庫動態啟動EC2實例 import boto3# 創建EC2客戶端 ec2 boto…

Linux(7)——進程(概念篇)

一、基本概念 書本上的概念:程序的一個執行實例,正在執行的程序等 基于內核的觀點:擔當分配系統資源(CPU時間,內存)的實體。 我們知道,我們在寫代碼的時候,你的代碼進行編譯鏈接后生成可執行文件&#xff…

【Harmony】【鴻蒙】List列表View如何刷新內部的自定義View的某一個控件

創建自定義View Component export struct TestView{State leftIcon?:Resource $r(app.media.leftIcon)State leftText?:Resource | string $r(app.string.leftText)State rightText?:Resource | string $r(app.string.rightText)State rightIcon?:Resource $r(app.med…

Docker安裝MySQL集群(主從復制)

為確保生產環境中的數據安全與可靠性,數據庫普遍采用主從集群架構(一主一從)進行部署。本文將系統闡述如何利用Docker鏡像實現數據庫集群的容器化部署,并完整記錄各配置環節的具體實現步驟。 一、主服務實例創建(可以…

開篇:MCP理論理解和學習

文章目錄 零 參考資料一 MCP概念二 MCP核心架構和功能三 MCP VS OP(Others Protocol)3.1 函數調用3.2 模型上下文協議3.3 MCP VS Others Protocol3.3.1 MCP與Function Calling的對比優勢3.3.2 MCP與AI Agents的協同關系3.3.3 MCP與A2A協議的互補性3.3.4 MCP與傳統API的技術革新…

產品經理面經(三)

目錄 為什么想做產品經理?為什么適合做產品經理? 解析 我的回答: 你覺得產品經理應該具備什么品質 解析 我的回答 想做什么方向的產品經理呢&你知道產品經理分為哪幾種嗎? 解題思路 為什么想做產品經理?為…

Vue3 Composition API: 企業級應用最佳實踐方案

在當前前端技術迅速發展的環境下,Vue3 Composition API 成為了關注的焦點。它為開發人員提供了更加靈活和可維護的代碼結構,適用于構建大規模企業級應用。在本文中,我們將探討Vue3 Composition API的最佳實踐方案,幫助開發人員更好…

CentOS大師班:企業級架構與云端融合實戰

一、高級存儲管理與災難恢復 1. LVM動態卷擴展實戰 pvcreate /dev/sdb1 # 創建物理卷 vgcreate vg_data /dev/sdb1 # 創建卷組 lvcreate -L 100G -n lv_www vg_data # 創建邏輯卷 mkfs.xfs /dev/vg_data/lv_www # 格式化 mount /dev/vg_da…

使用VGG-16模型來對海賊王中的角色進行圖像分類

動漫角色識別是計算機視覺的典型應用場景,可用于周邊商品分類、動畫制作輔助等。 這個案例是一個經典的深度學習應用,用于圖像分類任務,它使用了一個自定義的VGG-16模型來對《海賊王》中的七個角色進行分類,演示如何將經典CNN模型…

[創業之路-377]:企業戰略管理案例分析-戰略制定/設計-市場洞察“五看”:看宏觀之社會發展趨勢:數字化、智能化、個性化的趨勢對初創公司的戰略機會

數字化、智能化、個性化趨勢為初創公司帶來了捕捉長尾需求、提升運營效率、創新商業模式等戰略機會,具體分析如下: 一、數字化趨勢帶來的戰略機會 捕捉長尾需求:數字化技術能夠幫助初創公司更好地捕捉市場中的長尾需求,滿足那些…

macOS 安裝 PostgreSQL

文章目錄 安裝安裝信息 驗證GUI 工具下載 安裝 最簡單的方式是通過 brew 安裝 brew install postgresql17該版本在 brew 上的詳情頁:https://formulae.brew.sh/formula/postgresql17 你也可以根據需要,搜索 安裝更新版本 如果你沒有安裝 brew&#xf…

安裝openresty使用nginx+lua,openresty使用jwt解密

yum install -y epel-release yum update yum search openresty # 查看是否有可用包 yum install -y openresty啟動systemctl start openresty驗證服務狀態systemctl status openresty設置開機自啟systemctl enable openrestysystemctl stop openresty # 停止服務 system…