WEB工作原理

web工作原理圖


一次HTTP操作稱為一個事務抚垄,其工作整個過程如下:

1 ) 、地址解析,

如用客戶端瀏覽器請求這個頁面:http://localhost.com:80/index.htm

從中分解出協(xié)議名蘑险、主機名、端口待锈、對象路徑等部分伤提,對于我們的這個地址亲澡,解析得到的結果如下:

協(xié)議名:http

主機名:localhost.com

端口:80

對象路徑:/index.htm

在這一步,需要域名系統(tǒng)DNS解析域名localhost.com,得主機的IP地址。

2)骚秦、封裝HTTP請求數(shù)據(jù)包

把以上部分結合本機自己的信息楞陷,封裝成一個HTTP請求數(shù)據(jù)包

3)封裝成TCP包惫确,建立TCP連接(TCP的三次握手)

在HTTP工作開始之前鸭津,客戶機(Web瀏覽器)首先要通過網(wǎng)絡與服務器建立連接,該連接是通過TCP來完成的宽气,該協(xié)議與IP協(xié)議共同構建Internet随常,即著名的TCP/IP協(xié)議族潜沦,因此Internet又被稱作是TCP/IP網(wǎng)絡。HTTP是比TCP更高層次的應用層協(xié)議绪氛,根據(jù)規(guī)則唆鸡,只有低層協(xié)議建立之后才能,才能進行更層協(xié)議的連接枣察,因此争占,首先要建立TCP連接,一般TCP連接的端口號是80序目。這里是8080端口

4)客戶機發(fā)送請求命令

建立連接后臂痕,客戶機發(fā)送一個請求給服務器,請求方式的格式為:統(tǒng)一資源標識符(URL)猿涨、協(xié)議版本號握童,后邊是MIME信息包括請求修飾符、客戶機信息和可內容叛赚。

5)服務器響應

服務器接到請求后澡绩,給予相應的響應信息,其格式為一個狀態(tài)行红伦,包括信息的協(xié)議版本號英古、一個成功或錯誤的代碼淀衣,后邊是MIME信息包括服務器信息昙读、實體信息和可能的內容。

實體消息是服務器向瀏覽器發(fā)送頭信息后膨桥,它會發(fā)送一個空白行來表示頭信息的發(fā)送到此為結束蛮浑,接著,它就以Content-Type應答頭信息所描述的格式發(fā)送用戶所請求的實際數(shù)據(jù)

6)服務器關閉TCP連接

一般情況下只嚣,一旦Web服務器向瀏覽器發(fā)送了請求數(shù)據(jù)沮稚,它就要關閉TCP連接,然后如果瀏覽器或者服務器在其頭信息加入了這行代碼

Connection:keep-alive

TCP連接在發(fā)送后將仍然保持打開狀態(tài)册舞,于是蕴掏,瀏覽器可以繼續(xù)通過相同的連接發(fā)送請求。保持連接節(jié)省了為每個請求建立新連接所需的時間调鲸,還節(jié)約了網(wǎng)絡帶寬盛杰。

HTTP各種長度限制

1. URL長度限制

在Http1.1協(xié)議中并沒有提出針對URL的長度進行限制,RFC協(xié)議里面是這樣描述的藐石,HTTP協(xié)議并不對URI的長度做任何的限制即供,服務器端必須能夠處理任何它們所提供服務多能接受的URI,并且能夠處理無限長度的URI,如果服務器不能處理過長的URI,那么應該返回414狀態(tài)碼于微。

雖然Http協(xié)議規(guī)定了逗嫡,但是Web服務器和瀏覽器對URI都有自己的長度限制青自。

服務器的限制:我接觸的最多的服務器類型就是Nginx和Tomcat,對于url的長度限制,它們都是通過控制http請求頭的長度來進行限制的驱证,nginx的配置參數(shù)為large_client_header_buffers延窜,tomcat的請求配置參數(shù)為maxHttpHeaderSize,都是可以自己去進行設置。

瀏覽器的限制:每種瀏覽器也會對url的長度有所限制抹锄,下面是幾種常見瀏覽器的url長度限制:(單位:字符)

IE : 2803

Firefox:65536

Chrome:8182

Safari:80000

Opera:190000

對于get請求需曾,在url的長度限制范圍之內,請求的參數(shù)個數(shù)沒有限制祈远。

2. Post數(shù)據(jù)的長度限制

Post數(shù)據(jù)的長度限制與url長度限制類似呆万,也是在Http協(xié)議中沒有規(guī)定長度限制,長度限制可以在服務器端配置最大http請求頭長度的方式來實現(xiàn)。

3. Cookie的長度限制

Cookie的長度限制分這么幾個方面來總結车份。

(1) 瀏覽器所允許的每個域下的最大cookie數(shù)目,沒有去自己測試谋减,從網(wǎng)上找到的資料大概是這么個情況

IE :原先為20個,后來升級為50個

Firefox: 50個

Opera:30個

Chrome:180個

Safari:無限制

當Cookie數(shù)超過限制數(shù)時瀏覽器的行為:IE和Opera會采用LRU算法將老的不常使用的Cookie清除掉扫沼,F(xiàn)irefox的行為是隨機踢出某些Cookie的值出爹。當然無論怎樣的策略,還是盡量不要讓Cookie數(shù)目超過瀏覽器所允許的范圍缎除。

(2) 瀏覽器所允許的每個Cookie的最大長度

Firefox和Safari:4079字節(jié)

Opera:4096字節(jié)

IE:4095字節(jié)

(3) 服務器中Http請求頭長度的限制严就。Cookie會被附在每次http請求頭中傳遞給服務器,因此還會受到服務器請求頭長度的影響器罐。

4. Html5 LocalStorage

Html5提供了本地存儲機制來供Web應用在客戶端存儲數(shù)據(jù)梢为,盡管這個并不屬于Http協(xié)議的一部分,但是隨著Html5的流行轰坊,我們可能需要越來越多使用LocalStorage,甚至當它普及的時候跟它打交道就會同今天我們跟Cookie打交道一樣多铸董。

對于LocalStorage的長度限制,同Cookie的限制類似肴沫,也是瀏覽器針對域來限制,只不過cookie限制的是個數(shù)粟害,LocalStorage限制的是長度:

Firefox\Chrome\Opera都是允許每個域的最大長度為5MB

但是這次IE比較大方,允許的最大長度是10MB

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末颤芬,一起剝皮案震驚了整個濱河市悲幅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌站蝠,老刑警劉巖汰具,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沉衣,居然都是意外死亡郁副,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門豌习,熙熙樓的掌柜王于貴愁眉苦臉地迎上來存谎,“玉大人拔疚,你說我怎么就攤上這事〖燃裕” “怎么了稚失?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恰聘。 經(jīng)常有香客問我句各,道長,這世上最難降的妖魔是什么晴叨? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任凿宾,我火速辦了婚禮,結果婚禮上兼蕊,老公的妹妹穿的比我還像新娘初厚。我一直安慰自己,他們只是感情好孙技,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布产禾。 她就那樣靜靜地躺著,像睡著了一般牵啦。 火紅的嫁衣襯著肌膚如雪亚情。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天哈雏,我揣著相機與錄音楞件,去河邊找鬼。 笑死僧著,一個胖子當著我的面吹牛履因,可吹牛的內容都是我干的。 我是一名探鬼主播盹愚,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼站故!你這毒婦竟也來了皆怕?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤西篓,失蹤者是張志新(化名)和其女友劉穎愈腾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岂津,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡虱黄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吮成。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橱乱。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辜梳,死狀恐怖,靈堂內的尸體忽然破棺而出泳叠,到底是詐尸還是另有隱情作瞄,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布危纫,位于F島的核電站宗挥,受9級特大地震影響,放射性物質發(fā)生泄漏种蝶。R本人自食惡果不足惜契耿,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望螃征。 院中可真熱鬧宵喂,春花似錦、人聲如沸会傲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淌山。三九已至裸燎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泼疑,已是汗流浹背德绿。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留退渗,地道東北人移稳。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像会油,于是被迫代替她去往敵國和親个粱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容

  • 一翻翩、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,353評論 6 152
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理都许,服務發(fā)現(xiàn),斷路器嫂冻,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • http協(xié)議有http0.9胶征,http1.0,http1.1和http2三個版本桨仿,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,863評論 0 3
  • Http協(xié)議詳解 標簽(空格分隔): Linux 聲明:本片文章非原創(chuàng)睛低,內容來源于博客園作者MIN飛翔的HTTP協(xié)...
    Sivin閱讀 5,223評論 3 82
  • 你見過被拖延延誤了的人生嗎钱雷? 奥钐!我見過急波。 從哪里說起呢从铲? 今天晚上19:20分,這個人拿著鍵盤去電腦店澄暮,維修名段。 ...
    梁超文閱讀 311評論 0 1