關於http協議

來源:互聯網
上載者:User

標籤:建立   解析   ftp   進程   理解   代理   nbsp   測試的   進一步   

在對http協議做一些小總結之前,先複習一下網路結構:

1、OSI七層網路結構:ISO(國際標準組織)制定的一個互連網的標準架構模型,稱為開發系統互連基本參考模型。由底向上依次是:物理層,資料連結層,網路層(IP協議),運輸層(TCP、UDP協議),會話層,展示層,應用程式層(http協議,Telnet協議,ftp協議等)。劃分的依據應該是每一層不同的作用、功能,每一層也對應有不同的協議。

2、簡化的TCP/IP協議:四層,網路介面層(對應物理層和資料連結層),網路層,運輸層,應用程式層(對應會話層、展示層和應用程式層)

3、對各層的理解:物理層的作用就是考慮位元流資訊和物理資訊(電流電壓)如何對應,還有一些物理裝置如何串連的要求;

                        資料連結層功能是提供在相鄰結點之間的鏈路進行資料轉送的服務,資料要從一個主機傳輸到另一個主機,就要經過一段一段的鏈路;

                        網路層的功能主要是為封包交換網上不同主機間提供通訊服務,並有一些路由選擇策略在資料轉送時協助選擇合適的路由;

                        運輸層就是為兩個主機中進程之間的通訊提供通用的Data Transmission Service;

                        應用程式層服務的對象是應用進程,通過應用進程間的互動來完成特定的網路應用,應用程式層協議定義的是進程之間通訊和互動的規則

 

什麼是url?

url:統一資源定位器,其實就是一個網路地址,代表網路上某個資源的位置,能通過url訪問到這些資源

格式:<協議>://<主機地址>:<連接埠>/<路徑>

<主機地址>:<連接埠>也可以用網域名稱來表示,例如www.imooc.com這種,不過這種在請求全球資訊網文檔的時候會先通過DNS(網域名稱系統)解析出主機地址

http的預設連接埠是80,所以使用http協議的url通常可省略連接埠號碼,路徑也是可省略的,如http://www.tsinghua.com.cn,

後面也可帶要訪問的文檔的路徑,如http://www.tsinghua.com.cn/chn/yxsz/index.htm

 

http協議?

http協議:超文字傳輸通訊協定 (HTTP)。應用程式層協議,無串連、無狀態。

使用者點擊頁面上的某個連結,該連結url為http://www.tsinghua.com.cn/chn/yxsz/index.htm,整個過程如下:

1、瀏覽器分析連結指向的頁面的url

2、瀏覽器向網域名稱系統DNS請求解析www.tsinghua.com.cn的IP地址

3、網域名稱系統DNS解析出網域名稱對應的伺服器的IP地址為166.111.4.100

4、瀏覽器與伺服器建立TCP串連

5、瀏覽器向伺服器發送http請求(瀏覽器發出取檔案命令:GET/chn/yxsz/index.htm)

6、伺服器www.tsinghua.com.cn給出響應,把檔案index.htm發送給瀏覽器

7、TCP串連釋放

8、瀏覽器在頁面上顯示伺服器返回的常值內容

 

雖然在發送http請求之前,要先建立TCP串連,保證資料的可靠傳輸,但是http協議本身是不需連線的,即無需再發送請求報文前建立串連。

http協議是無狀態的,也就是沒有記憶功能,即使同一個客戶對同一個伺服器發起第二次訪問,也是一次全新的請求,伺服器不會知道這個客戶已經發起過多少次請求,也就是每一次訪問都和第一次訪問是一樣的。

http請求報文實在建立TCP串連的三向交握中的第三向交握時發送給伺服器的,這個串連是在http響應報文從伺服器發送到用戶端後才斷開的。

HTTP1.0和HTTP1.1的區別:1.0版本是非持續串連,也就是每請求一次要建立一次TCP串連,下一次訪問又要重建立立TCP串連;而1.1版本是持續串連的機制,也就是在伺服器發送響應報文之後,仍在一段時間內保持串連,以供同一個客戶和該伺服器之間可以發送後續的請求和響應報文,這樣的話就能節省建立TCP串連產生的開銷。並且一些要求方法(如OPTION,PUT,DETELE,TRACE,CONNECT等)也是在1.1才增加的。

 

HTTP請求的方法:

1、GET 請求讀取由URL所標誌的資訊 

2、POST 給伺服器添加資訊

3、PUT 在指明的URL下儲存一個文檔

4、DELETE 刪除指明的URL所標誌的資源

5、HEAD 請求讀取由URL所標誌的資訊的首部

6、TRACE 用來進行環回測試的請求報文

7、CONNECT 用於Proxy 伺服器

8、OPTION 請求一些選項的資訊

 

響應報文的狀態代碼(Status Code)都是3位元字的,分為5大類共33種:

1xx:表示通知資訊的,如請求收到了或者進行中處理

2xx:表示成功了,如接受或知道了

3xx:表示重新導向,如要完成請求還必須採取進一步的行動

4xx:表示客戶的差錯,如請求中有錯誤的文法或不能完成

5xx:表示伺服器的差錯,如伺服器失效無法完成請求

 

在伺服器上存放使用者的資訊?

可以在http中使用cookie。機制是怎樣的呢?如果某個使用者在瀏覽一個使用了cookie的網站時,發起http請求,伺服器會為這個使用者產生一個唯一的識別碼,並在返回給該使用者的響應報文中會添加這個識別碼的資訊,例如:Set-cookie:1233435,然後瀏覽器就會在cookie文本裡新增一行記錄這個識別碼和對應的伺服器的主機名稱,後續會在發送的http請求報文中加上這個識別碼。這樣網站就可以跟蹤使用者1233435在該網站的活動。

關於http協議

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.