激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識|Nginx|IIS|Tomcat|

什么是http服務(wù)器

2020-04-13 21:29嗶嗶小子 服務(wù)器知識

本篇文章旨在從服務(wù)器后臺開發(fā)的角度剖析一個簡單的http服務(wù)器的運行原理,讓你了解什么是http服務(wù)器

什么是http服務(wù)器

我們知道瀏覽器是http(s)的客戶端,目的是連接遠(yuǎn)程的http服務(wù)器,然后服務(wù)器返回瀏覽器數(shù)據(jù).瀏覽器接收數(shù)據(jù)解析數(shù)據(jù)之后展現(xiàn)出來.我們看到的外在表現(xiàn)就是,瀏覽器訪問一個url,然后就得到相應(yīng)的web頁面.

同樣我們知道,瀏覽器與http服務(wù)器是通過http協(xié)議,傳輸層是tcp協(xié)議,因為他是有連接,可靠的協(xié)議.關(guān)于http協(xié)議簡單的介紹一下:


一個標(biāo)準(zhǔn)的HTTP請求由以下幾個部分組成

  1. <request-line> 
  2. <headers> 
  3. <CRLF> 
  4. [<request-body><CRLF>] 

在HTTP請求中,第一行是請求行(request-line),用來說明請求類型、要訪問的資源(URL)以及使用的HTTP版本; 緊接著是多行頭部(headers)信息,用來說明服務(wù)器要使用的附加信息; 頭部信息之后是一個回車換行符( ),用于標(biāo)明頭部信息的結(jié)束。 以上是必須內(nèi)容,根據(jù)需要可在頭部信息結(jié)束之后增加主體數(shù)據(jù)(request-body);

主體數(shù)據(jù)之后是一個回車換行符( ),用于標(biāo)明主體數(shù)據(jù)的結(jié)束。

例如,我們可以在IE瀏覽器上輸入下面的網(wǎng)址:

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

HTTP請求的頭部信息如下:

 

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

收到請求數(shù)據(jù)之后,服務(wù)器解析,畢竟是明文字符,這個簡單.然后服務(wù)器就知道了客戶端的要求--獲取目錄hello/index.html文件.服務(wù)器讀取文件內(nèi)容發(fā)送給瀏覽器就好了.

后來隨著業(yè)務(wù)邏輯越來越復(fù)雜,單單獲取某個html文件功能早已不能滿足需求,個性化需求呼之欲出.比如在線問卷調(diào)查表,他究竟是怎么把我們填寫的數(shù)據(jù)傳遞給服務(wù)器的呢?

你可能會說那不是一樣,客戶端發(fā)送什么內(nèi)容,服務(wù)器就接收什么內(nèi)容.可是你想過沒有,每個網(wǎng)站的需求是不一樣的,本來服務(wù)器接收到瀏覽器的請求數(shù)據(jù)已經(jīng)是夠復(fù)雜的了,還讓服務(wù)器來解析數(shù)據(jù)并響應(yīng)不同的數(shù)據(jù)處理,這不太現(xiàn)實.

一般的,服務(wù)器最好只接收數(shù)據(jù),如果讓服務(wù)器也處理數(shù)據(jù)邏輯,勢必會讓服務(wù)器變得很復(fù)雜,穩(wěn)定性也得不到保證.

另外一個角度是為了讓程序復(fù)用,提高生產(chǎn)效率.也就是說,如果不關(guān)注業(yè)務(wù)邏輯,只注重接收數(shù)據(jù),那么服務(wù)器程序可以給任何一個開發(fā)者使用.換句話說,我們不用從頭開始寫.直接使用現(xiàn)有的高性能的服務(wù)器就可以滿足需求了.例如公司白領(lǐng)中午要吃飯,不可能跑回家自己去做飯吃,自己叫外賣就好了.

但是現(xiàn)實問題仍然沒有解決,通過什么方式去處理業(yè)務(wù)邏輯呢?

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

同理服務(wù)器程序最好也提供接口,瀏覽器通過統(tǒng)一的接口給服務(wù)器,然后我們從服務(wù)器接口中獲取我們想要的數(shù)據(jù).獲取數(shù)據(jù)之后我們可以把數(shù)據(jù)交給第三方程序來處理邏輯,這樣就做到與服務(wù)器業(yè)務(wù)分離了,good iead.

事實上,現(xiàn)在的http服務(wù)器就是這么做的,不過很復(fù)雜而已.下一篇開始為您介紹這些接口.

附錄:HTTP Request Header 請求頭

 

 

Header

解釋

示例

Accept

指定客戶端能夠接收的內(nèi)容類型

Accept: text/plain, text/html

Accept-Charset

瀏覽器可以接受的字符編碼集。

Accept-Charset: iso-8859-5

Accept-Encoding

指定瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類型。

Accept-Encoding: compress, gzip

Accept-Language

瀏覽器可接受的語言

Accept-Language: en,zh

Accept-Ranges

可以請求網(wǎng)頁實體的一個或者多個子范圍字段

Accept-Ranges: bytes

Authorization

HTTP授權(quán)的授權(quán)證書

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Cache-Control

指定請求和響應(yīng)遵循的緩存機制

Cache-Control: no-cache

Connection

表示是否需要持久連接。(HTTP 1.1默認(rèn)進(jìn)行持久連接)

Connection: close

Cookie

HTTP請求發(fā)送時,會把保存在該請求域名下的所有cookie值一起發(fā)送給web服務(wù)器。

Cookie: $Version=1; Skin=new;

Content-Length

請求的內(nèi)容長度

Content-Length: 348

Content-Type

請求的與實體對應(yīng)的MIME信息

Content-Type: application/x-www-form-urlencoded

Date

請求發(fā)送的日期和時間

Date: Tue, 15 Nov 2010 08:12:31 GMT

Expect

請求的特定的服務(wù)器行為

Expect: 100-continue

From

發(fā)出請求的用戶的Email

From: user@email.com

Host

指定請求的服務(wù)器的域名和端口號

Host: www.zcmhi.com

If-Match

只有請求內(nèi)容與實體相匹配才有效

If-Match: “737060cd8c284d8af7ad3082f209582d”

If-Modified-Since

如果請求的部分在指定時間之后被修改則請求成功,未被修改則返回304代碼

If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT

If-None-Match

如果內(nèi)容未改變返回304代碼,參數(shù)為服務(wù)器先前發(fā)送的Etag,與服務(wù)器回應(yīng)的Etag比較判斷是否改變

If-None-Match: “737060cd8c284d8af7ad3082f209582d”

If-Range

如果實體未改變,服務(wù)器發(fā)送客戶端丟失的部分,否則發(fā)送整個實體。參數(shù)也為Etag

If-Range: “737060cd8c284d8af7ad3082f209582d”

If-Unmodified-Since

只在實體在指定時間之后未被修改才請求成功

If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT

Max-Forwards

限制信息通過代理和網(wǎng)關(guān)傳送的時間

Max-Forwards: 10

Pragma

用來包含實現(xiàn)特定的指令

Pragma: no-cache

Proxy-Authorization

連接到代理的授權(quán)證書

Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Range

只請求實體的一部分,指定范圍

Range: bytes=500-999

Referer

先前網(wǎng)頁的地址,當(dāng)前請求網(wǎng)頁緊隨其后,即來路

Referer: http://www.zcmhi.com/archives/71.html

TE

客戶端愿意接受的傳輸編碼,并通知服務(wù)器接受接受尾加頭信息

TE: trailers,deflate;q=0.5

Upgrade

向服務(wù)器指定某種傳輸協(xié)議以便服務(wù)器進(jìn)行轉(zhuǎn)換(如果支持)

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

User-Agent

User-Agent的內(nèi)容包含發(fā)出請求的用戶信息

User-Agent: Mozilla/5.0 (Linux; X11)

Via

通知中間網(wǎng)關(guān)或代理服務(wù)器地址,通信協(xié)議

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

Warning

關(guān)于消息實體的警告信息

Warn: 199 Miscellaneous warning

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成年视频 | 一级大黄毛片免费观看 | 成人h精品动漫一区二区三区 | 欧美精品一二三区 | 亚洲人成电影在线 | 在线观看网址av | 免费一级毛片在线播放视频 | 欧美淫视频 | free台湾极品性hd | 久久久久北条麻妃免费看 | 免费一级欧美在线观看视频 | 精品久久久久久 | 全部免费毛片 | 久草在线综合 | 精品国产九九九 | 国产免费大片视频 | 中国免费一级毛片 | 亚洲aⅴ在线观看 | 欧美精品一区自拍a毛片在线视频 | 欧美黑大粗硬毛片视频 | 爽爽淫人网 | 国av在线| 精品中文字幕久久久久四十五十骆 | 天堂精品在线 | 伊人99在线 | 91福利社在线 | 色淫网站免费视频 | 一级毛片免费在线 | 曰韩一级片 | 中文字幕欧美日韩 | 久久综合一区二区 | av影片在线观看 | 31freehdxxxx欧美| 蜜桃一本色道久久综合亚洲精品冫 | 国产三级三级三级三级 | 亚洲一区二区免费 | 羞羞视频免费网站含羞草 | 成人aaaa免费全部观看 | 久久亚洲精品久久国产一区二区 | 视频一区二区久久 | 色av综合在线 |