Android基礎之Http基礎詳解

一、http協議:

HTTP 是超文本傳輸協議(Hypertext transfer protocol),面向應用層協議,傳輸的對象爲文件

一次Http操作爲一個事務

1:客戶機和服務器建立連接,單擊鏈接開始工作
2:客戶機發送請求給服務器,格式爲URL、協議版本號,後面是MIME信息
3:服務器接到請求後,給以響應信息,格式爲一個狀態行,包括協議版本號、一個成功或錯誤的代碼,後面是MIME信息(404錯誤代碼爲無法響應)
4:客戶端街道服務器的響應信息,然後斷開連接
HTTP協議是一個無狀態的協議

二、URL結構

URL(UniformResourceLocator)爲網頁地址。由三部分構成:第一部分爲協議(https爲加密協議)、第二部分爲IP地址(一般是域名錶示IP地址)(有時包括端口號)、第三部分爲主機資源的具體地址,如目錄和文件名

三、TCP/IP三次握手

SYN是TCP/IP連接時使用的握手信息(synchronous),在客戶機和服務器之間建立正常的TCP網絡連接時,客戶機首先發出一個SYN信息,服務器使用SYN和ACK應答表示接受到了這個信息,最後客戶機再以ACK信息確認響應,這樣在客戶機和服務器機建立起可靠的TCP連接

ACK(Acknowledgement)即確認字符,表示已經接受到信息
三次握手:

客戶機:你好,我想和你建立連接(發送SYN請求連接)
服務器:你好,我已經接受到信息並且已經準備連接,同時我也想和你建立連接(發送ACK表示可以連接,同時發送SYN表示連接想法)
客戶機:謝謝,我已經收到你的連接想法,同時我已經準備連接(回發ACK表示可以連接)

整個過程是雙方都需要向對方發送連接想法和確認連接信息
這裏寫圖片描述

四、http請求頭信息:

Request URL:請求的地址
Request Method:請求方法
Status Code:請求狀態
Accept:可以接受的文件格式
Accept-Encoding:可接受的編碼
Accept-Language:可接受的語言
Connection:連接方式
Host:主機地址

五、Http協議特點:

1.支持客戶/服務器模式。
2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯繫的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並受到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快

六、OSI模型

OSI參考模型將整個網絡通信功能劃分爲七個層次:
由低到高分別是物理層PH、數據鏈路層DL、網絡層N、傳輸層T、會話層S、表示層P、應用層A
http協議屬於應用層
每層直接爲其上層提供服務,並且所有層次都互相支持。四到其層負責互操作性;一到三層用於創造兩個網絡設備間的物理連接

物理層和數據鏈路層:將比特流轉換成電流信息,在物理設備電流設備轉化
網絡層:IP協議,規劃網絡ip地址
傳輸層:降底層信息通過nava協議傳輸,對應tcp、udp等協議
會話層:建立連接
表示層:在兩個不同編碼方式下進行數據轉化和編碼的加密解密操作
應用層:http訪問層,應用請求協議
提出tcp/ip四層協議(對於OSI協議的一個簡化)

七、http/1.0和1.1區別

HTTP/1.0每次請求都需要建立新的TCP連接,連接不能複用。
HTTP/1.1新的請求可以在上次請求建立的TCP連接之上發送,連接可以複用。優點是減少重複進行TCP三次握手的開銷,提高效率。
HTTP1.1在Request消息頭裏頭多了一個Host域,HTTP1.0則沒有這個域。Host:www.w3.org
HTTP1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT這些Request方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章