tft每日頭條

 > 科技

 > http server服務器

http server服務器

科技 更新时间:2024-09-27 17:29:20

本篇文章旨在從服務器後台開發的角度剖析一個簡單的http服務器的運行原理.

我們知道浏覽器是http(s)的客戶端,目的是連接遠程的http服務器,然後服務器返回浏覽器數據.浏覽器接收數據解析數據之後展現出來.我們看到的外在表現就是,浏覽器訪問一個url,然後就得到相應的web頁面.

同樣我們知道,浏覽器與http服務器是通過http協議,傳輸層是tcp協議,因為他是有連接,可靠的協議.關于http協議簡單的介紹一下:

一個标準的HTTP請求由以下幾個部分組成

<request-line> <headers> <CRLF> [<request-body><CRLF>]

在HTTP請求中,第一行是請求行(request-line),用來說明請求類型、要訪問的資源(URL)以及使用的HTTP版本;緊接着是多行頭部(headers)信息,用來說明服務器要使用的附加信息;頭部信息之後是一個回車換行符(\r\n),用于标明頭部信息的結束。以上是必須内容,根據需要可在頭部信息結束之後增加主體數據(request-body);

主體數據之後是一個回車換行符(\r\n),用于标明主體數據的結束。

例如,我們可以在IE浏覽器上輸入下面的網址:

http://localhost:8000/hello/index.html

HTTP請求的頭部信息如下:

GET /hello/index.html HTTP/1.1 Accept: */* Accept-Language: zh-cn Accept-Encoding: gzip, deflate Host: localhost:8000 Connection: Keep-Alive Cookie: JSESSIONID=BBBA54D519F7A320A54211F0107F5EA6

收到請求數據之後,服務器解析,畢竟是明文字符,這個簡單.然後服務器就知道了客戶端的要求--獲取目錄hello/index.html文件.服務器讀取文件内容發送給浏覽器就好了.

後來随着業務邏輯越來越複雜,單單獲取某個html文件功能早已不能滿足需求,個性化需求呼之欲出.比如在線問卷調查表,他究竟是怎麼把我們填寫的數據傳遞給服務器的呢?

你可能會說那不是一樣,客戶端發送什麼内容,服務器就接收什麼内容.可是你想過沒有,每個網站的需求是不一樣的,本來服務器接收到浏覽器的請求數據已經是夠複雜的了,還讓服務器來解析數據并響應不同的數據處理,這不太現實.

一般的,服務器最好隻接收數據,如果讓服務器也處理數據邏輯,勢必會讓服務器變得很複雜,穩定性也得不到保證.

另外一個角度是為了讓程序複用,提高生産效率.也就是說,如果不關注業務邏輯,隻注重接收數據,那麼服務器程序可以給任何一個開發者使用.換句話說,我們不用從頭開始寫.直接使用現有的高性能的服務器就可以滿足需求了.例如公司白領中午要吃飯,不可能跑回家自己去做飯吃,自己叫外賣就好了.

但是現實問題仍然沒有解決,通過什麼方式去處理業務邏輯呢?

你要給手機充電時,把插頭插入插線闆就能獲取電了.插線闆有接口,提供了電.

同理服務器程序最好也提供接口,浏覽器通過統一的接口給服務器,然後我們從服務器接口中獲取我們想要的數據.獲取數據之後我們可以把數據交給第三方程序來處理邏輯,這樣就做到與服務器業務分離了,good iead.

【文章福利】小編整理了一些學習資料、教學視頻和學習路線圖共享在群文件,資料包括《Andoird音視頻開發必備手冊 音視頻最新學習視頻 大廠面試真題 2022最新學習路線圖 項目實戰源碼》等等(C/C ,Linux,FFmpeg ,webRTC, rtmp, hls, rtsp, ffplay, srs),免費分享,有需要的可以搜索788280672加群自取~希望對大家有幫助!

http server服務器(什麼是http服務器)1

http server服務器(什麼是http服務器)2

事實上,現在的http服務器就是這麼做的,不過很複雜而已.下一篇開始為您介紹這些接口.

附錄:HTTP Request Header 請求頭

http server服務器(什麼是http服務器)3

http server服務器(什麼是http服務器)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved