0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

后端技術(shù)是什么

汽車電子技術(shù) ? 來源:碼農(nóng)與軟件時代 ? 作者:碼農(nóng)與軟件時代 ? 2023-02-14 14:53 ? 次閱讀

1.基礎(chǔ)技術(shù)

Web應(yīng)用的簡易流程:瀏覽器向Web服務(wù)器請求,Web應(yīng)用根據(jù)請求信息進行業(yè)務(wù)邏輯處理,如果需要查詢數(shù)據(jù),則與數(shù)據(jù)庫交互即可;然后把結(jié)果返回給用戶的瀏覽器;最后瀏覽器將頁面渲染并呈現(xiàn)出來。如下圖所示:

圖片

Web服務(wù)器介于操作系統(tǒng)和Web應(yīng)用之間,通常被稱為中間件,比較流行的有IIS、Apache、Tomcat、JBoss、WebSphere、WebLogic等等。這里討論的Web后端技術(shù)僅涉及到Web應(yīng)用。下面我們來看看其發(fā)展歷程:

最早使用CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口),可惜我完美地錯過了。據(jù)說在這個時代,可以使用C、Perl等語言,通過printf將希望返回的HTML內(nèi)容一行一行地寫出來。這種方法費時費力,可讀性很差。后來PHP語言出現(xiàn)了,PHP可以將動態(tài)內(nèi)容嵌入到HTML中執(zhí)行,可惜我只是看過PHP代碼,沒有實際編程。再后來微軟提出的ASP和Sun提出的JSP,我很榮幸地開始使用ASP和JSP編程了,我們可以先看下JSP的廬山真面目:

圖片

可以看出,JSP將Java代碼嵌入到HTML頁面中,并用<%= %>標(biāo)識。我們將包含這個代碼的文件放入到Tomcat(Web容器的一種),然后就可以運行了。

雖然ASP、JSP等提高了應(yīng)用開發(fā)效率,但對一個復(fù)雜的大型Web應(yīng)用來說,頁面顯示和邏輯代碼混雜在一起,可讀性慢慢地就變差了。此時,引入了MVC(Model-View-Controller,模型-視圖-控制器)架構(gòu),其中,模型的職責(zé)是:封裝與業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)和數(shù)據(jù)處理方法;視圖的職責(zé)是數(shù)據(jù)的展示;控制器的職現(xiàn)是:根據(jù)請求信息,路由至模型,并將響應(yīng)消息定位到視圖。Java針對Web應(yīng)用制定Servlet規(guī)范:把Web應(yīng)用程序定義為“Servlet、HTML頁面、類以及其他資源的集合”,并將Servlet將HTTP公開給Java,如下圖所示:

圖片

Servlet規(guī)范存在一些沒有解決的問題:

l Web應(yīng)用程序處理請求時要解決的日常任務(wù):

l 呈現(xiàn)表示層(HTML);

l 請求參數(shù)到Java類型的數(shù)據(jù)綁定;

l 驗證數(shù)據(jù);

l 業(yè)務(wù)邏輯的組織;

l 訪問數(shù)據(jù)層。

這些問題在Web應(yīng)用編程中被看作是公共通用問題,“不重復(fù)發(fā)明輪子”是軟件開發(fā)工程領(lǐng)域中提高軟件生產(chǎn)效率的重要思想。于是,產(chǎn)生了很多諸如Struct、Spring、MyBatis等等框架(后端使用不同的語言,分別對應(yīng)不同的框架,這里以Java為例)。到這里,Web后端的基礎(chǔ)畫像如圖所示:

圖片

2.基本原理

我們以Java語言生態(tài)為例來說明Web后端的簡要處理過程。如下圖所示:

圖片

請求到達Socket后,Tomcat將啟動Servlet并將請求的IP地址、請求參數(shù)傳給Servlet對象,然后根據(jù)URL地址匹配Servlet處理類,并映射到對應(yīng)的處理方法。請求進入處理方法之后,如果是需要將數(shù)據(jù)保存在數(shù)據(jù)庫,則通過JDBC連接數(shù)據(jù),將數(shù)據(jù)存入到數(shù)據(jù)庫中;如果需要提取數(shù)據(jù)并傳到頁面,該方法也會從數(shù)據(jù)庫中取出數(shù)據(jù),經(jīng)過反序列化處理,生成Java對象,并將其序列化送到瀏覽器去渲染并展示。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1255

    瀏覽量

    69299
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64239
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1009

    瀏覽量

    35241
收藏 人收藏

    評論

    相關(guān)推薦

    基于Serverless的前后端一體化框架

    污染業(yè)務(wù)代碼。與高可用、高并發(fā)和運維相關(guān)的邏輯與后端業(yè)務(wù)邏輯交織在一起,讓后端技術(shù)門檻變高,導(dǎo)致需要多個后端工程師才能掌握所有后端
    發(fā)表于 03-01 18:10 ?861次閱讀

    如何正確選擇麥克風(fēng)陣列陣型和技術(shù)?

    遠(yuǎn)場語音交互產(chǎn)品確實比較復(fù)雜,僅僅選用麥克風(fēng)陣列就有如此多的問題。那么應(yīng)當(dāng)如何選擇合適的麥克風(fēng)陣列和技術(shù)呢?1、從產(chǎn)品實際角度出發(fā),先定前端方案再定后端技術(shù)首先還是應(yīng)該從產(chǎn)品實際角度出發(fā),先定前端
    發(fā)表于 08-08 18:56

    如何訪問一個網(wǎng)頁

    我是做嵌入式的,最近聽了很多關(guān)于云平臺的名詞,比如PAAS,SAAS等,整的我一頭霧水。于是準(zhǔn)備學(xué)一下這方面的技術(shù)知識,不然出去又沒法和人聊天了。計算機相關(guān)專業(yè)或者本身就是做前后端技術(shù)的童鞋可以忽略
    發(fā)表于 12-22 07:57

    基于嵌入式的開發(fā)云和后端技術(shù)的討論研究

    常見的網(wǎng)絡(luò)架構(gòu)分為C/S和B/S兩種模式。C/S是客戶端/服務(wù)器模式,典型應(yīng)用如QQ客戶端、百度云管家等;B/S則是瀏覽器/服務(wù)器模式,典型的應(yīng)用就是門戶網(wǎng)站、銀行業(yè)務(wù)系統(tǒng)等。兩種模式的優(yōu)點和缺點都顯而易見。
    發(fā)表于 09-29 18:37 ?1661次閱讀
    基于嵌入式的開發(fā)云和<b class='flag-5'>后端</b><b class='flag-5'>技術(shù)</b>的討論研究

    大牛整理Java深入學(xué)習(xí)路線圖

    Java,是現(xiàn)階段中國互聯(lián)網(wǎng)公司中,覆蓋度最廣的研發(fā)語言。有不少朋友問,如何深入學(xué)習(xí)Java后端技術(shù)棧,今天分享一個,互聯(lián)網(wǎng)牛人整理出來的Java深入學(xué)習(xí)路線圖,以及免費學(xué)習(xí)資料。
    的頭像 發(fā)表于 11-02 09:43 ?1.1w次閱讀

    高??蒲谐晒芾硐到y(tǒng)如何進行設(shè)計與實現(xiàn)

    Eclipse,前端技術(shù)采用Jsp + HTML + CSS以及JavaScript,后端技術(shù)主要采用Java,數(shù)據(jù)庫為MySQL。本系統(tǒng)具有完整的業(yè)務(wù)流程,采用響應(yīng)式開發(fā),用戶交互界面良好,可以很好地滿足高??蒲谐晒芾淼男枨?/div>
    發(fā)表于 12-20 16:35 ?8次下載
    高校科研成果管理系統(tǒng)如何進行設(shè)計與實現(xiàn)

    一份關(guān)于全球技術(shù)招聘和技能的年度分析報告

    每個測試中可以使用多種技術(shù),因此一些 Java 測試和 SQL 測試可能是一樣的。所以,后面會介紹一些常見的技術(shù)配對??赡苣愠?吹氖呛?HTML/CSS 配對的前端技術(shù)以及和 SQL 配對的
    的頭像 發(fā)表于 01-28 11:11 ?2033次閱讀

    EDA產(chǎn)業(yè)全景概述

    等等,現(xiàn)代 EDA 工具幾乎涵蓋了 IC 設(shè)計的方方面面,具有的功能十分全面,可以粗略的劃分為前端技術(shù)、后端技術(shù)和驗證技術(shù),各個技術(shù)之間有所
    發(fā)表于 07-15 15:39 ?2200次閱讀

    全球EDA IC設(shè)計深度報告

    設(shè)計,以及后面的工藝制造等等,現(xiàn)代 EDA 工具幾乎涵蓋了 IC 設(shè)計的方方面面,具有的功能十分全面,可以粗略的劃分為前端技術(shù)、后端技術(shù)和驗證技術(shù),各個
    的頭像 發(fā)表于 10-30 16:49 ?660次閱讀

    NVIDIA將全面開源材質(zhì)定義語言(MDL)

    NVIDIA 在 SIGGRAPH 2022 大會上宣布,為了進一步擴大 MDL 生態(tài)系統(tǒng),將全面開源材質(zhì)定義語言(MDL),包括 MDL Distiller 和 GLSL 后端技術(shù)。
    的頭像 發(fā)表于 08-14 10:51 ?1351次閱讀

    后端技術(shù):時鐘網(wǎng)格(Clock Mesh)技術(shù)和信號完整性的考慮

    在同步電路中,時鐘信號連接所有的寄存器和鎖存器,是整個電路工作的基本保障。然而從時鐘的根節(jié)點到每個寄存器時鐘端的延時,由于走的路徑不相同,到達的時間也不相同
    的頭像 發(fā)表于 11-24 20:36 ?6323次閱讀

    nodejs 后端技術(shù)介紹

    筆者最開始學(xué)的后端技術(shù)是 python 的 Django 框架,由于很久沒有使用過 python 語法,便想著了解一些 nodejs 的后端技術(shù)。下面將最近的收獲總結(jié)一下。
    的頭像 發(fā)表于 05-05 16:41 ?1058次閱讀

    開源云測框架Hydra Lab的智能化測試實戰(zhàn)

    在今年 9 月 3-5 日舉辦的 QCon 全球軟件開發(fā)大會·北京站 中,微軟中國高級研發(fā)經(jīng)理步紹鵬將分享 Hydra Lab 的技術(shù)思路,以及其對軟件測試智能化的理解與實踐經(jīng)驗。在大會開始前,InfoQ 對步紹鵬、微軟測試平臺后端技術(shù)
    的頭像 發(fā)表于 09-04 16:59 ?911次閱讀

    Rapidus與IBM深化合作,共推2nm制程后端技術(shù)

    日本先進的半導(dǎo)體代工廠Rapidus本月初宣布,與IBM在2nm制程領(lǐng)域的合作將進一步深化,從前端技術(shù)拓展至后端封裝技術(shù)。此次雙方的合作將聚焦于芯粒(Chiplet)先進封裝量產(chǎn)技術(shù)
    的頭像 發(fā)表于 06-14 11:23 ?522次閱讀