http基礎知識學習(第一篇)

圖解HTTP

1.HTTP:超文本傳輸協議

2.TCP/IP:互聯網相關協議的集合。

tcp/ip分層:應用層,傳輸層,網絡層,數據鏈路層。

應用層(HTTP協議):向用戶提供應用服務時通信的活動。

例如:FTP:文本傳輸協議;DNS:域名系統。

傳輸層(TCP協議):對上層應用層,提供處于網絡連接中的兩臺計算機之間的數據傳輸。

例如:TCP:傳輸控制協議;UDP:用戶數據報協議。

網絡層(IP【網際協議】協議):處理網絡上流動的數據包。數據包是網絡傳輸的最小單位。
鏈路層:用來處理連接網絡的硬件部分。

例如:控制操作系統,硬件的設備驅動,NIC(網卡)及光纖。

3.IP地址和ip協議

ip 協議:把各種數據包傳送給對方。
ip 地址:節點唄分配到的地址,MAC:網卡所屬的固定地址。MAC地址基本不會變。

使用ARP協議憑借MAC地址進行通信。

ARP協議:解析地址的協議,根據通信的IP地址就可以反查出對應的MAC地址。
TCP協議三次握手策略:flag-SYN-ACK。

發送端首先發送一個帶有SYN標識的數據包給對方。接收端收到后,回傳一個帶有SYN/ACK標識的數據包以示傳達確認信息。最后,發送端在回傳一個帶有ACK標志的數據包,握手結束。

4. URI和URL

URI:統一資源標識符;URL:統一資源定位符.

URI用字符串標識某一互聯網資源,而URL表示資源的地點(互聯網上所處的位置。)可見URL是URI的子集。

URI語法示例:

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org.rfc/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one

URI格式:

表示指定的URI,要使用涵蓋全部必要的絕對URI,絕對URL以及相對URL。相對URL:是從瀏覽器中基本URI處指定的URL。

絕對URI的格式如下表格:
http ://user:pass @www.example.jp :80 /dir/index.html? uid=1 #ch1
協議方案名 登錄信息(認證) 服務器地址 服務器端口號 帶層次的文件路徑 查詢字符串 片段標識符

5.http協議用于客戶端和服務器端的通信

http協議規定,請求從客戶端發出,最后服務器響應該請求并返回。換句話說,肯定是先從客戶端開始建立通信的,服務器端在沒有接受到請求之前不會發送響應的。

1.請求報文是從請求方法,請求URI,協議版本,可選的請求首部字段和內容實體構成。
GET /index.htm HTTP/1.1
Host:hackr.jp

請求報文的構成如下表格
方法 URI 協議版本 請求首部字段 內容實體
POST /from/entry HTTP/1.1 Host:hackr.jp Connection:keep-alive Content-Type:application/x-www-from-urlencoded name=ueno&age=17

響應報文由協議版本,狀態碼(表示請成功或者失敗的數字代碼)、用以解釋狀態碼的原因短語,可選的響應首部字段以及實體主題構成。

響應報文的構成如下表格
協議版本 狀態碼 狀態碼的原因短語 響應首部字段 實體
HTTP/1.1 200 OK Date :tue,10 Jul 2012 06:50:15 GMT Content-Length:362 Content-Type:text/html <html>

6.http是不保存狀態的協議

HTTP是一種不保存狀態,即無狀態(stateless)協議。HTTP協議自身不對請求和響應之間的通信狀態進行保存。也就是說HTTP這個級別,協議對于發送的請求或者響應都不做持久化的處理。(若是想要保存狀態,可以引入Cookie技術。)

7.請求URI定位資源

當客戶端請求訪問資源而發送請求時,URI需要將作為請求報文中的請求URI包含在內。

請求URI的方式:

~URI為完整的請求URI GET http://hackr.jp/index.htm HTTP/1.1
~在首部字段Host中寫明網絡域名或者IP地址 GET /inedx.htm HTTP/1.1 Host :hackr.jp
除此之外,如果不是訪問特定資源而是對服務器本身發起請求,可以用一個*來代替請求URI. OPTIONS * HTTP/1.1

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容