1. URI>URL

URI:“A Uniform Resource Identifier (URI) 是一個緊湊的字符串用來標示抽象或物理資源。”
URL:“Uniform Resource Locator” (URL) 是URI的子集, 標識資源的地址
URN:URN作用就好像一個人的名字,URL就像一個人的地址。換句話說:“URN確定了東西的身份,URL提供了找到它的方式。”
絕對URI格式:

2. HTTP1.1協議結構
(1)請求報文:請求方法、請求URI、協議版本、可選的請求首部字段和內容實體構成的。

(2)響應報文:協議版本、狀態碼、用於解釋狀態碼的短語、可選的響應首部字段以及實體主體構成。

(3)HTTP是不保存狀態的協議
HTTP1.1雖然是無狀態協議,但為了實現保持狀態,於是引入Cookie技術,有了Cookie就可以管理狀態了
(4)請求URI定位資源

(5)告知服務器意圖
GET:獲取資源
GET用來請求訪問一被URI識別的資源,如果請求的資源是文本,那就保持原樣返回,如果是CGI那樣的程序,則返回執行后的結果。

POST:傳輸實體主體
雖然用GET也可以傳輸實體,但一般用POST

PUT:傳輸文件
HTTP1.1的PUT方法自身不帶驗證機制,任何人都可以上傳文件,存在安全問題。所以一般不用。

HEAD:獲取報文首部
HEAD方法和GET方法一樣,只是不反悔報文主體部分。用於確認URI的有效性及資源更新的日期時間等。

DELETE:刪除文件
HTTP1.1的DELETE方法自身不帶驗證機制,任何人都可以上傳文件,存在安全問題。所以一般不用。除非配合Wev應用程序的驗證機制或者遵守REST標准時還是有可能開放使用的。

OPTIONS:詢問支持的方法

TRACE:追蹤路徑
不常用,加上它容易引發XST(Cross-Site-Tracing,跨站追蹤)攻擊
CONNECT:要求用隧道協議連接代理
(6)使用方法下達命令

(7)持久連接節省通信量
只要任意一端沒有明確提出斷開連接,則保持TCP連接狀態:HTTP keep-alive
好處:在於減少了TCP連接的重復建立和斷開所造成的額外開銷以及更快地展示頁面。在HTTP1.1中,所有的連接默認都是持久連接。
在於還有管線化技術讓並行成為可能,而不需要一個接一個地等待響應。

(8)使用Cookie的狀態管理
不保存狀態的好處:減少服務器的CPU及內存資源的消耗
Cookie原理如下圖:


上圖展示了發生 Cookie 交互的情景,HTTP 請求報文和響應報文的內 容如下。

