標籤:建立 解析 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協議