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