基礎篇-服務器工作實現的淺析

Paste_Image.png

前言

對于一個前端開發的人員來說,了解服務器的基礎知識,個人覺得是非常必要的,于是就有一個這篇側重于Java的服務器相關知識的文章,只是簡單介紹對于我也是一個拓展。

首先我們來說一下服務器的架構,在很早以前 C/S架構的服務器大行其道,隨著時間的推移,這種兩層架構的服務器模式逐漸被 B/S 架構的WEB服務器所替代。

B/S架構 vs C/S 架構

關于這倆者的詳細關系和比較,你可以百度百科下,不過在我看來,簡述下倆者的不同大體有如下方面:

  • C/S結構軟件(即客戶機/服務器模式)分為客戶機和服務器兩層

  • B/S結構(Browser/Server,瀏覽器/服務器 模式),是WEB興起后的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器即可,服務器安裝SQL Serve、Oracle、MYSQL等數據庫。瀏覽器通過Web Server 同數據庫進行數據交互。

  • 從本質上說,Browser/Server結構也是一種Client/Server結構,它可看作是一種由傳統的二層模式Client/Server結構發展而來的三層模式Client/Server結構在Web上應用的特例。

  • C/S 一般面向相對固定的用戶群,般建立在專用的網絡上,小范圍里的網絡環境,局域網之間再通過專門服務器提供連接和數據交換服務。對信息安全的控制能力很強。 一般高度機密的信息系統采用C/S 結構適宜。可以通過B/S發布部分可公開信息。

  • B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶

聊到這里有個詞需要解釋下,什么是三層架構

三層架構

通常意義上的三層架構就是將整個業務應用劃分為:界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、數據訪問層(Data access layer)。區分層次的目的即為了“高內聚低耦合”的思想。在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分別為:數據訪問層、業務邏輯層(又或稱為領域層)、表示層。

B/S 三層架構,采用這種分層(數據層、邏輯層、界面層)設計編碼實現的b/s模式的軟件就是b/s三層架構的軟件

因為所有的模塊角色只會有三種:數據管理者、數據加工者、數據展示者,意思也就是,籠統說來,軟件只會有三層,每一層扮演一個角色。其他的第四層第五層,一般都是這三層里面的其中之一分出來的,最后都能歸納進這三層的某一層中去,所以用三層架構來描述就比較普遍。

服務器

Web服務器的最底層實際上是一個socket。這個socket監聽并接受到達的TCP連接。一旦一個連接被建立,就可以通過這個新建立的連接讀取、解析信息,然后將這些信息包裝成一個HTTP請求。這個HTTP請求還將被移交至web應用程序,來完成請求的動作。

目前主流的服務器方案是
**中小型服務器: Tomcat 大型服務器: Apache +Tomcat **

關于 Tomcat 與 Apache 的關系大體如下:

  • Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中。同時Apache音譯為阿帕奇。

  • Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

  • Apache支持靜態頁,Tomcat支持動態的,比如servlet等, 一般使用apache+tomcat的話,apache只是作為一個轉發,對jsp的處理是由tomcat來處理的。 apache可以支持php\cgi\perl,但是要使用java的話,你需要tomcat在apache后臺支撐,將java請求由apache轉發給tomcat處理。

  • apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴展,但是可以獨立于apache運行。

  • 兩者都是apache組織開發的 、兩者都有HTTP服務的功能 、兩者都是免費的。

  • APACHE是一個web服務器環境程序 啟用他可以作為web服務器使用 不過只支持靜態網頁 如(asp,php,cgi,jsp)等動態網頁的就不行 。如果要在APACHE環境下運行jsp 的話就需要一個解釋器來執行jsp網頁 而這個jsp解釋器就是TOMCAT, 為什么還要JDK呢?**因為jsp需要連接數據庫的話就要jdk來提供連接數據庫的驅程,所以要運行jsp的web服務器平臺就需要APACHE+TOMCAT+JDK **

  • ** Apache:側重于http server Tomcat:側重于servlet引擎,如果以standalone方式運行,功能上與apache等效 , 支持JSP,但對靜態網頁不太理想 **

關于Tomcat的工作原理

首先我們需要先了解下Servlet

Servlet(Server Applet),全稱Java Servlet,暫無中文譯文。是用Java編寫的服務器端程序。其主要功能在于交互式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。
Servlet運行于支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基于HTTP協議的Web服務器。

Tomcat是Servlet的容器,Servlet 是一種運行在支持Java語言的服務器上的組件,它與普通Java類的區別就是它運行在服務器上。由于Java的平臺無關性,再加上Servlet 運行在服務器端,因此 Servlet 對于用戶是完全透明的。

Servlet 容器的作用是負責處理客戶請求。當客戶請求來到時,Servlet容器獲取請求,然后調用某個Servlet,并把Servlet的執行結果返回給客戶,Tomcat就是起到這樣作用的容器。

當客戶請示某個資源時,Servlet容器使用 ServletRequest 對象把客戶的請求信息封裝起來,然后調用 Java Servlet API 中定義的一些Servlet 方法,完成Servlet的執行,接著把Servlet 執行的要返回給客戶的結果封裝到 ServletResponse對象中,最后Servlet 容器把客戶的請求發給客戶,完成為客戶的一次服務過程。

Paste_Image.png
關于一個Web中使用到的技術之間的關系

我們常常聽到 HTML、CSS、JavaScript在網頁編程中都會使用到,那到底他們的作用是什么呢,這里打個比喻方便大家大致了解下其各自不同的功能作用。

如果把一個網頁比作一個人的話,HTML就是這個人的軀干,CSS就是這個人的衣服,而JavaScript就是這個人的行為動作。


小結

這里羅列了一些關于服務器端乃至Web前端開發的知識,雖然很淺顯,但是對于我們開發者來說,了解這些也是一種拓展。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容

  • 轉自陳明乾的博客,可能有一定更新。 轉原文聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、...
    C86guli閱讀 4,713評論 6 72
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,330評論 11 349
  • 這部分主要是與Java Web和Web Service相關的面試題。 96、闡述Servlet和CGI的區別? 答...
    雜貨鋪老板閱讀 1,421評論 0 10
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,726評論 18 399
  • “我是江小白,生活很簡單” “我是小江白—中國馳名的白酒文藝青年” 這不是在練繞口令,這是重慶的兩瓶小白酒在爭賣“...
    葡萄大課堂閱讀 1,099評論 0 51