【OSI七層協議】
應用程式層
與其它電腦進行通訊的一個應用,它是對應應用程式的通訊服務的。例如,一個沒有通訊功能的文書處理程式就不能執行通訊的代碼,從事文書處理工作的程式員也不關心OSI的第7層。但是,如果添加了一個傳輸檔案的選項,那麼文書處理器的程式員就需要實現OSI的第7層。樣本:TELNET,HTTP,FTP,NFS,SMTP等。
展示層
主要功能是定義資料格式及加密。例如,FTP允許你選擇以二進位或ASCII格式傳輸。如果選擇二進位,那麼發送方和接收方不改變檔案的內容。如果選擇ASCII格式,發送方將把文本從發送方的字元集轉換成標準的ASCII後發送資料。在接收方將標準的ASCII轉換成接收方電腦的字元集。樣本:加密,ASCII等。
會話層
定義了如何開始、控制和結束一個會話,包括對多個雙向訊息的控制和管理,以便在只完成連續訊息的一部分時可以通知應用,從而使展示層看到的資料是連續的,在某些情況下,如果展示層收到了所有的資料,則用資料代表展示層。樣本:RPC,SQL等。
傳輸層
這層的功能包括是否選擇差錯恢複協議還是無差錯恢複協議,及在同一主機上對不同應用的資料流的輸入進行複用,還包括對收到的順序不對的資料包的重新排序功能。樣本:TCP,UDP,SPX。
網路層
這層對端到端的包傳輸進行定義,它定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應傳輸單元最大值長度小於包長度的傳輸介質,網路層還定義了如何將一個包分解成更小的包的分段方法。樣本:IP,IPX等。
資料連結層
它定義了在單個鏈路上如何傳輸資料。這些協議與被討論的各種介質有關。樣本:ATM,FDDI等。
物理層
OSI的物理層規範是有關傳輸介質的特性標準,這些規範通常也參考了其他組織制定的標準。串連頭、幀、幀的使用、電流、編碼及光調製等都屬於各種物理層規範中的內容。物理層常用多個規範完成對所有細節的定義。樣本:Rj45,802.3等。
【TCP/IP五層協議】
【HTTP協議】
HTTP協議(HyperText Transfer Protocol,超文字傳輸通訊協定 (HTTP))是用於從WWW伺服器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證電腦正確快速地傳輸超文字文件,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
HTTP是一個應用程式層協議,由請求和響應構成,永遠都是用戶端發起請求,伺服器回送響應,是一個標準的用戶端伺服器模型。
HTTP是一個無狀態的協議,同一個用戶端的這次請求和上次請求是沒有對應關係。
一次HTTP操作稱為一個事務,其工作過程可分為四步:
1)首先客戶機與伺服器需要建立串連。只要單擊某個超級連結,HTTP的工作開始。
2)建立串連後,客戶機發送一個請求給伺服器,請求方式的格式為:統一資源識別項(URL)、協議版本號碼,後邊是MIME資訊包括請求修飾符、客戶機資訊和可能的內容
3)伺服器接到請求後,給予相應的響應資訊,其格式為一個狀態行,包括資訊的協議版本號碼、一個成功或錯誤的代碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的內容。
4)用戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器中斷連線。如果在以上過程中的某一步出現錯誤,那麼產生錯誤的資訊將返回到用戶端,有顯示屏輸出。對於使用者來說,這些過程是由HTTP自己完成的,使用者只要用滑鼠點擊,等待資訊顯示就可以了。
常用的請求方式
常用的請求方式是GET和POST.
GET方式:是以實體的方式得到由請求URL所指定資源的資訊,如果請求URL只是一個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。
POST方式:用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求隊列中請求URI所指定資源的附加新子項,Post被設計成用統一的方法實現下列功能:
1:對現有資源的解釋;
2:向電子公告欄、新聞群組、郵件清單或類似討論群組發資訊
3:提交資料區塊;
4:通過附加操作來擴充資料庫 。
從上面描述可以看出,Get是向伺服器索取資料的一種請求;而Post是向伺服器提交資料的一種請求,要提交的資料位元於資訊頭後面的實體中。
GET與POST方法有以下區別:
(1) 在用戶端,Get方式在通過URL提交資料,資料在URL中可以看到;POST方式,資料放置在HTML HEADER內提交。
(2) GET方式提交的資料最多隻能有1024位元組,而POST則沒有此限制。
(3) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些資料是中文資料而且是非敏感性資料,那麼使用 get;如果使用者輸入的資料不是中文字元而且包含敏感性資料,那麼還是使用 post為好。
(4) 安全的和等冪的。所謂安全的意味著該操作用於擷取資訊而非修改資訊。等冪的意味著對同一 URL 的多個請求應該返回同樣的結果。完整的定義並不像看起來那樣嚴格。換句話說,GET 請求一般不應產生副作用。從根本上講,其目標是當使用者開啟一個連結時,她可以確信從自身的角度來看沒有改變資源。比如,新聞網站的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認為是安全的和等冪的,因為它總是返回當前的新聞。反之亦然。POST 請求就不那麼輕鬆了。POST 表示可能改變伺服器上的資源的請求。仍然以新聞網站為例,讀者對文章的註解應該通過 POST 請求實現,因為在註解提交之後網站已經不同了(比方說文章下面出現一條註解)。
Cookie和Session
Cookie和Session都為了用來儲存狀態資訊,都是儲存用戶端狀態的機制,它們都是為瞭解決HTTP無狀態的問題而所做的努力。
Session可以用Cookie來實現,也可以用URL回寫的機制來實現。用Cookie來實現的Session可以認為是對Cookie更進階的應用。
Cookie和Session有以下明顯的不同點:
1)Cookie將狀態儲存在用戶端,Session將狀態儲存在伺服器端;
2)Cookies是伺服器在本地機器上儲存的小段文本並隨每一個請求發送至同一個伺服器。Cookie最早在RFC2109中實現,後續RFC2965做了增強。網路伺服器用HTTP頭向用戶端發送cookies,在客戶終端,瀏覽器解析這些cookies並將它們儲存為一個本地檔案,它會自動將同一伺服器的任何請求縛上這些cookies。Session並沒有在HTTP的協議中定義;
3)Session是針對每一個使用者的,變數的值儲存在伺服器上,用一個sessionID來區分是哪個使用者session變數,這個值是通過使用者的瀏覽器在訪問的時候返回給伺服器,當客戶禁用cookie時,這個值也可能設定為由get來返回給伺服器;
4)就安全性來說:當你訪問一個使用session 的網站,同時在自己機子上建立一個cookie,建議在伺服器端的SESSION機制更安全些.因為它不會任意讀取客戶儲存的資訊。
HTTPS
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,https所用的連接埠號碼是443。
【TCP層】
TCP(Transmission Control Protocol 傳輸控制通訊協定)是一種連線導向的、可靠的、基於位元組流的傳輸層通訊協定.TCP層是位於IP層之上,應用程式層之下的中介層。不同主機的應用程式層之間經常需要可靠的、像管道一樣的串連,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。
應用程式層向TCP層發送用於網間傳輸的、用8位位元組表示的資料流,然後TCP把資料流分區成適當長度的報文段(通常受該電腦串連的網路的資料連結層的傳輸單元最大值MTU的限制)。之後TCP把結果包傳給IP層,由它來通過網路將包傳送給接收端實體的TCP層。TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的包發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那麼對應的資料包就被假設為已丟失將會被進行重傳。TCP用一個校正和函數來檢驗資料是否有錯誤;在發送和接收時都要計算校正和。