摘要:在這個(gè)例子中指的是協(xié)議的安全版本,被稱為,或者。因此,依賴于面向連接的進(jìn)行消息傳遞,但連接并不是必須的。開(kāi)放同源限制為了防止網(wǎng)絡(luò)窺聽(tīng)和其它隱私泄漏,瀏覽器強(qiáng)制對(duì)網(wǎng)站做了分割限制。,與請(qǐng)求頭部類似。
什么是HTTP?
HTTP (超文本傳輸協(xié)議) 是用來(lái)在 Web 上傳輸文件的基礎(chǔ) 協(xié)議 ,最典型的是在瀏覽器和服務(wù)器之間傳遞以至于上網(wǎng)人員可以瀏覽他們。
作為URI的一部分,“http://”被稱為模式,通常位于地址的開(kāi)頭,例如“https://developer.mozilla.org”,就是指示瀏覽器利用HTTP協(xié)議請(qǐng)求文檔。https在這個(gè)例子中指的是HTTP協(xié)議的安全版本,被稱為SSL,或者TLS。
HTTP 是基于文本 (所有的通信都是以純文本的形式進(jìn)行) 以及無(wú)狀態(tài)的 (當(dāng)前通信不會(huì)發(fā)現(xiàn)以前的通信狀態(tài))。這個(gè)特點(diǎn)對(duì)在www上訪問(wèn)網(wǎng)頁(yè)的人是很理想的。而且,HTTP也可以讓網(wǎng)站更加的靈活多變,利用在AJAX上等。
一、基于HTTP的組件系統(tǒng)在一個(gè)瀏覽器和處理請(qǐng)求的服務(wù)器之間,由于Web的層次設(shè)計(jì),那些在網(wǎng)絡(luò)層和傳輸層的細(xì)節(jié)都被隱藏起來(lái)了。HTTP位于最上層的應(yīng)用層。雖然底層對(duì)于分析網(wǎng)絡(luò)問(wèn)題非常重要,但是大多都跟對(duì)HTTP的描述不相干。
user-agent: 就是任何能夠?yàn)橛脩舭l(fā)起行為的工具。
Web服務(wù)端:Web Server來(lái)服務(wù)并提供客戶端所請(qǐng)求的文檔
代理(Proxies):在瀏覽器和服務(wù)器之間,有許多計(jì)算機(jī)和其他設(shè)備轉(zhuǎn)發(fā)了HTTP消息。由于Web棧層次結(jié)構(gòu)的原因,它們大多都出現(xiàn)在傳輸層、網(wǎng)絡(luò)層和物理層上,對(duì)于HTTP應(yīng)用層而言就是透明的,雖然它們可能會(huì)對(duì)應(yīng)用層性能有重要影響。還有一部分是表現(xiàn)在應(yīng)用層上的,被稱為代理
1、緩存(可以是公開(kāi)的也可以是私有的,像瀏覽器的緩存) 2、過(guò)濾(像反病毒掃描,家長(zhǎng)控制...) 3、負(fù)載均衡(讓多個(gè)服務(wù)器服務(wù)不同的請(qǐng)求) 4、認(rèn)證(對(duì)不同資源進(jìn)行權(quán)限管理) 5、日志記錄(允許存儲(chǔ)歷史信息)二、HTTP 的基本性質(zhì)
HTTP是無(wú)狀態(tài)的,使用Cookies可以創(chuàng)建有狀態(tài)的會(huì)話。
把Cookies添加到頭部中,創(chuàng)建一個(gè)會(huì)話讓每次請(qǐng)求都能共享相同的上下文信息,達(dá)成相同的狀態(tài),將兩個(gè)請(qǐng)求相關(guān)聯(lián),如購(gòu)物車實(shí)現(xiàn)兩個(gè)商品添加!
HTTP 和連接
兩個(gè)最常用的傳輸層協(xié)議:TCP是可靠的,而UDP不是。因此,HTTP依賴于面向連接的TCP進(jìn)行消息傳遞,但連接并不是必須的。為了更好的適合HTTP,設(shè)計(jì)一種更好傳輸協(xié)議的進(jìn)程一直在進(jìn)行。Google就研發(fā)了一種以UDP為基礎(chǔ),能提供更可靠更高效的傳輸協(xié)議三、HTTP 能控制什么
以下是可以被HTTP控制的常見(jiàn)特性:
緩存:文檔如何緩存能通過(guò)HTTP來(lái)控制。
開(kāi)放同源限制:
為了防止網(wǎng)絡(luò)窺聽(tīng)和其它隱私泄漏,瀏覽器強(qiáng)制對(duì)Web網(wǎng)站做了分割限制。只有來(lái)自于相同來(lái)源的網(wǎng)頁(yè)才能夠獲取網(wǎng)站的全部信息。這樣的限制有時(shí)反而成了負(fù)擔(dān),HTTP可以通過(guò)修改頭部來(lái)開(kāi)放這樣的限制,因此Web文檔可以是由不同域下的信息拼接成的(某些情況下,這樣做還有安全因素考慮)
認(rèn)證:
一些頁(yè)面能夠被保護(hù)起來(lái),僅讓特定的用戶進(jìn)行訪問(wèn)。基本的認(rèn)證功能可以直接通過(guò)HTTP提供,使用Authenticate相似的頭部即可,或用HTTP Cookies來(lái)設(shè)置指定的會(huì)話。
代理和隧道:
通常情況下,服務(wù)器和/或客戶端是處于內(nèi)網(wǎng)的,對(duì)外網(wǎng)隱藏真實(shí) IP 地址。因此 HTTP 請(qǐng)求就要通過(guò)代理越過(guò)這個(gè)網(wǎng)絡(luò)屏障。但并非所有的代理都是 HTTP 代理。例如,SOCKS協(xié)議的代理就運(yùn)作在更底層,一些像 FTP 這樣的協(xié)議也能夠被它們處理。
會(huì)話:使用HTTP Cookies允許你用一個(gè)服務(wù)端的狀態(tài)發(fā)起請(qǐng)求,這就創(chuàng)建了會(huì)話。
四、HTTP 流當(dāng)客戶端想要和服務(wù)端進(jìn)行信息交互時(shí)(服務(wù)端是指最終服務(wù)器,或者是一個(gè)中間代理),過(guò)程表現(xiàn)為下面幾步:
打開(kāi)一個(gè)TCP連接
發(fā)送一個(gè)HTTP報(bào)文
讀取服務(wù)端返回的報(bào)文信息
讀取服務(wù)端返回的報(bào)文信息
五、HTTP 報(bào)文有兩種HTTP報(bào)文的類型,請(qǐng)求與響應(yīng),每種都有其特定的格式。
1、請(qǐng)求
請(qǐng)求由以下元素組成:
一個(gè)HTTP的method,經(jīng)常是由一個(gè)動(dòng)詞像GET, POST 或者一個(gè)名詞像OPTIONS,HEAD來(lái)定義客戶端的動(dòng)作行為。通常客戶端的操作都是獲取資源(GET方法)或者發(fā)送HTML form表單值(POST方法),雖然在一些情況下也會(huì)有其他操作。
要獲取的資源的路徑,通常是上下文中就很明顯的元素資源的URL,它沒(méi)有protocol (http://),domain(developer.mozilla.org),或是TCP的port(HTTP一般在80端口)。
HTTP協(xié)議版本號(hào)。
為服務(wù)端表達(dá)其他信息的可選頭部headers。
對(duì)于一些像POST這樣的方法,報(bào)文的body就包含了發(fā)送的資源,這與響應(yīng)報(bào)文的body類似。
2、響應(yīng)
響應(yīng)報(bào)文包含了下面的元素:
HTTP協(xié)議版本號(hào)。
一個(gè)狀態(tài)碼(status code),來(lái)告知對(duì)應(yīng)請(qǐng)求執(zhí)行成功或失敗,以及失敗的原因。
一個(gè)狀態(tài)信息,這個(gè)信息是非權(quán)威的狀態(tài)碼描述信息,可以由服務(wù)端自行設(shè)定。
HTTP headers,與請(qǐng)求頭部類似。
可選項(xiàng),比起請(qǐng)求報(bào)文,響應(yīng)報(bào)文中更常見(jiàn)地包含獲取的資源body。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/103123.html
摘要:代表公司去參加今年的第二屆前端開(kāi)發(fā)者年度大會(huì),散會(huì)的時(shí)候,技術(shù)老大問(wèn)我,今天感覺(jué)怎么樣,有什么收獲,當(dāng)時(shí)就零零碎碎的回答了一些,不算完美趁著還記得點(diǎn)什么,在這里做個(gè)自我回顧總結(jié),謹(jǐn)代表個(gè)人見(jiàn)解,有不當(dāng)之處,或若涉及圖片隱私或者其它問(wèn)題,煩請(qǐng) 代表公司去參加今年的 第二屆前端開(kāi)發(fā)者年度大會(huì),散會(huì)的時(shí)候,Team 技術(shù)老大問(wèn)我,今天感覺(jué)怎么樣,有什么收獲,當(dāng)時(shí)就零零碎碎的回答了一些,不算完...
摘要:從最開(kāi)始的到封裝后的都在試圖解決異步編程過(guò)程中的問(wèn)題。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。異步編程入門(mén)的全稱是前端經(jīng)典面試題從輸入到頁(yè)面加載發(fā)生了什么這是一篇開(kāi)發(fā)的科普類文章,涉及到優(yōu)化等多個(gè)方面。 TypeScript 入門(mén)教程 從 JavaScript 程序員的角度總結(jié)思考,循序漸進(jìn)的理解 TypeScript。 網(wǎng)絡(luò)基礎(chǔ)知識(shí)之 HTTP 協(xié)議 詳細(xì)介紹 HTT...
摘要:作為微服務(wù)的基礎(chǔ)設(shè)施之一,背靠強(qiáng)大的生態(tài)社區(qū),支撐技術(shù)體系。微服務(wù)實(shí)踐為系列講座,專題直播節(jié),時(shí)長(zhǎng)高達(dá)小時(shí),包括目前最流行技術(shù),深入源碼分析,授人以漁的方式,幫助初學(xué)者深入淺出地掌握,為高階從業(yè)人員拋磚引玉。 簡(jiǎn)介 目前業(yè)界最流行的微服務(wù)架構(gòu)正在或者已被各種規(guī)模的互聯(lián)網(wǎng)公司廣泛接受和認(rèn)可,業(yè)已成為互聯(lián)網(wǎng)開(kāi)發(fā)人員必備技術(shù)。無(wú)論是互聯(lián)網(wǎng)、云計(jì)算還是大數(shù)據(jù),Java平臺(tái)已成為全棧的生態(tài)體系,...
閱讀 908·2021-09-03 10:42
閱讀 1518·2019-08-30 15:56
閱讀 1453·2019-08-29 17:27
閱讀 879·2019-08-29 15:25
閱讀 3166·2019-08-26 18:27
閱讀 2487·2019-08-26 13:41
閱讀 1895·2019-08-26 10:39
閱讀 1585·2019-08-23 18:36