婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTTP協(xié)議簡介_動力節(jié)點(diǎn)Java學(xué)院整理

HTTP協(xié)議簡介_動力節(jié)點(diǎn)Java學(xué)院整理

熱門標(biāo)簽:承德地圖標(biāo)注公司收費(fèi) 臨沂ai電銷機(jī)器人招商 外呼系統(tǒng)號顯示星號怎么看 銀川語音外呼系統(tǒng)中心 揭陽電腦外呼系統(tǒng)公司 鶴壁外呼系統(tǒng)公司 suitecrm 地圖標(biāo)注 華創(chuàng)e路航彩票銷售點(diǎn)地圖標(biāo)注 高德地圖標(biāo)注常顯

TCP協(xié)議對應(yīng)于傳輸層,而HTTP協(xié)議對應(yīng)于應(yīng)用層,從本質(zhì)上來說,二者沒有可比性。Http協(xié)議是建立在TCP協(xié)議基礎(chǔ)之上的,當(dāng)瀏覽器需要從服務(wù)器獲取網(wǎng)頁數(shù)據(jù)的時候,會發(fā)出一次Http請求。Http會通過TCP建立起一個到服務(wù)器的連接通道,當(dāng)本次請求需要的數(shù)據(jù)完畢后,Http會立即將TCP連接斷開,這個過程是很短的。所以Http連接是一種短連接,是一種無狀態(tài)的連接。所謂的無狀態(tài),是指瀏覽器每次向服務(wù)器發(fā)起請求的時候,不是通過一個連接,而是每次都建立一個新的連接。如果是一個連接的話,服務(wù)器進(jìn)程中就能保持住這個連接并且在內(nèi)存中記住一些信息狀態(tài)。而每次請求結(jié)束后,連接就關(guān)閉,相關(guān)的內(nèi)容就釋放了,所以記不住任何狀態(tài),成為無狀態(tài)連接。

隨著時間的推移,html頁面變得復(fù)雜了,里面可能嵌入了很多圖片,這時候每次訪問圖片都需要建立一次tcp連接就顯得低效了。因此Keep-Alive被提出用來解決效率低的問題。從HTTP/1.1起,默認(rèn)都開啟了Keep-Alive,保持連接特性,簡單地說,當(dāng)一個網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會關(guān)閉,如果客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個時間。雖然這里使用TCP連接保持了一段時間,但是這個時間是有限范圍的,到了時間點(diǎn)依然是會關(guān)閉的,所以我們還把其看做是每次連接完成后就會關(guān)閉。后來,通過Session, Cookie等相關(guān)技術(shù),也能保持一些用戶的狀態(tài)。但是還是每次都使用一個連接,依然是無狀態(tài)連接。

為什么Http是無狀態(tài)的短連接,而TCP是有狀態(tài)的長連接?Http不是建立在TCP的基礎(chǔ)上嗎,為什么還能是短連接? Http就是在每次請求完成后就把TCP連接關(guān)了,所以是短連接。而我們直接通過Socket編程使用TCP協(xié)議的時候,因?yàn)槲覀冏约嚎梢酝ㄟ^代碼區(qū)控制什么時候打開連接什么時候關(guān)閉連接,只要我們不通過代碼把連接關(guān)閉,這個連接就會在客戶端和服務(wù)端的進(jìn)程中一直存在,相關(guān)狀態(tài)數(shù)據(jù)會一直保存著。

在Java中會有Socket,實(shí)際上socket是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個調(diào)用接口(API)。Socket的出現(xiàn)只是使得程序員更方便地使用TCP/IP協(xié)議棧而已,是對TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口,比如create、listen、connect、accept、send、read和write等等。

比較形象的描述:HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動機(jī),提供了網(wǎng)絡(luò)通信的能力。對于從C#編程的角度來講,為了方便,你可以直接選擇已經(jīng)制造好的轎車Http來與服務(wù)器交互。但是有時候往往因?yàn)榄h(huán)境因素或者其他的一些定制的請求,必須要使用TCP協(xié)議,這時就需要使用Socket編程,然后自己去處理獲取的數(shù)據(jù)。就像是你用已有的發(fā)動機(jī),自己造了一輛卡車,去從服務(wù)器交互。

HTTP/1.0和HTTP/1.1都把TCP作為底層的傳輸協(xié)議。HTTP客戶首先發(fā)起建立與服務(wù)器TCP連接。一旦建立連接,瀏覽器進(jìn)程和服務(wù)器進(jìn)程就可以通過各自的套接字來訪問TCP。如前所述,客戶端套接字是客戶進(jìn)程和TCP連接之間的“門”,服務(wù)器端套接字是服務(wù)器進(jìn)程和同一TCP連接之間的“門”。客戶往自己的套接字發(fā)送HTTP請求消息,也從自己的套接字接收HTTP響應(yīng)消息。類似地,服務(wù)器從自己的套接字接收HTTP請求消息,也往自己的套接字發(fā)送HTTP響應(yīng)消息。客戶或服務(wù)器一旦把某個消息送入各自的套接字,這個消息就完全落入TCP的控制之中。TCP給HTTP提供一個可靠的數(shù)據(jù)傳輸服務(wù);這意味著由客戶發(fā)出的每個HTTP請求消息最終將無損地到達(dá)服務(wù)器,由服務(wù)器發(fā)出的每個HTTP響應(yīng)消息最終也將無損地到達(dá)客戶。

WebService不需要連接,一秒中至少可以支持上萬/十萬的請求,每次請求然后釋放,沒有空余的內(nèi)存消耗。一般不會限制同時連接的個數(shù),這是優(yōu)勢。因?yàn)槊總€連接即使沒有在請求數(shù)據(jù),也會在內(nèi)存中占用一定的空間存儲。會限制,比如SQL Server數(shù)據(jù)庫服務(wù)器,一般最多同時連接16個。

Http協(xié)議一定通過指定的端口,80,所以一般計算機(jī)上不會限制這個端口,所以Http協(xié)議能夠順利通過所有機(jī)器上的防火墻。而使用Socket編程的話,就需要自己指定特定的端口,那么很可能這個端口是在某個環(huán)境中禁用的,那么就無法穿透防火墻。

apache使用的是80端口,也就是這個程序一直在監(jiān)聽著這個端口。一旦發(fā)現(xiàn)有人要建立到這個端口的連接,他就會響應(yīng),然后建立連接。這里說的連接都是短連接。所以你對服務(wù)器上的網(wǎng)址的請求,都是通過80端口送到網(wǎng)站程序的。然后通過這個端口發(fā)送的客戶端瀏覽器。

您可能感興趣的文章:
  • Java下載遠(yuǎn)程服務(wù)器文件到本地(基于http協(xié)議和ssh2協(xié)議)
  • Java與Http協(xié)議的詳細(xì)介紹
  • HTTP協(xié)議詳解_動力節(jié)點(diǎn)Java學(xué)院整理
  • HTTP協(xié)議入門_動力節(jié)點(diǎn)Java學(xué)院整理
  • Java HTTP協(xié)議收發(fā)MQ 消息代碼實(shí)例詳解
  • javaweb中Http協(xié)議詳解
  • 基于JAVA中Jersey處理Http協(xié)議中的Multipart的詳解
  • 使用 Java 類 實(shí)現(xiàn)Http協(xié)議

標(biāo)簽:汕尾 許昌 三沙 咸寧 萊蕪 棗莊 七臺河 忻州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTTP協(xié)議簡介_動力節(jié)點(diǎn)Java學(xué)院整理》,本文關(guān)鍵詞  HTTP,協(xié)議,簡介,動力,節(jié)點(diǎn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTTP協(xié)議簡介_動力節(jié)點(diǎn)Java學(xué)院整理》相關(guān)的同類信息!
  • 本頁收集關(guān)于HTTP協(xié)議簡介_動力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 文昌市| 南平市| 中江县| 曲阜市| 阳泉市| 平泉县| 道真| 拉萨市| 玉田县| 砚山县| 虎林市| 长兴县| 富锦市| 东光县| 竹山县| 双江| 惠东县| 游戏| 洮南市| 普安县| 潮安县| 张家川| 怀安县| 肃宁县| 法库县| 辽宁省| 兰溪市| 大埔区| 丰都县| 措美县| 砀山县| 陵川县| 永平县| 沙雅县| 博罗县| 平江县| 方山县| 浙江省| 连山| 休宁县| 涟水县|