URL
URL
的全稱是 Uniform Resource Locator
(統一資源定位符)
- 通過 1 個 URL,能找到互聯網上唯一的 1 個資源
- URL就是資源的地址、位置,互聯網上的每個資源都有一個唯一的
URL
URL 格式
- 基本格式:
協議頭://主機地址/路徑
協議頭
:不同的協議,表示不同的資源查找及傳輸方式
主機地址
:存放資源主機的 IP
地址(域名)
路徑
:資源在主機中的具體位置
HTTP 協議
HTTP
的全稱是 Hypertext Transfer Protocol
,超文本傳輸協議
- 規定客戶端和服務器之間的數據傳輸格式
- 讓客戶端和服務器能有效地進行數據溝通
HTTP
協議是網絡編程使用最爲廣泛的協議
- 思考
- 客戶端該傳什麼格式的數據給服務器?服務器才能看懂
- 服務器該返回什麼格式的數據給客戶端?客戶端才能看懂
HTTP協議特點
- 簡單快速
- 因爲HTTP協議簡單,所以
HTTP
服務器的程序規模小,通信速度快
- 靈活
HTTP 0.9
和 1.0
使用非持續連接
- 限制每次連接只處理一個請求,服務器對客戶端的請求做出響應後,立刻斷開連接,這種方式可以節省傳輸時間
HTTP 1.1
使用持續連接
- 不必爲每個web對象創建一個新的連接,一個連接可以傳送多個對象
HTTP通信過程
請求
HTTP
協議規定:一個完整的由客戶端發給服務器
的 HTTP 請求
需要包含以下內容:
請求行
:指定 請求方法
、請求資源路徑
以及 HTTP協議版本
GET / HTTP/1.1
* `請求頭`:對客戶端的環境描述、客戶端請求的主機地址等信息
* `請求頭`中至少包含以下信息
Host: m.baidu.com
* `請求頭`中還可以包含以下信息
User-Agent: iPhone AppleWebKit
Accept: text/html, */*
Accept-Language: zh-cn
Accept-Encoding: gzip
Connection: Close
* 請求體(可選):客戶端發給服務器的具體數據,例如要上傳的文件數據
- 請求格式
- 每一項請求信息末尾使用
\r\n
- 最後一個請求項末尾使用
\r\n\r\n
表示請求結束
響應
HTTP
協議規定:一個完整的 HTTP 響應
包含以下內容:
- 狀態行:包含了HTTP協議版本、狀態碼、狀態英文名稱
HTTP/1.1 200 OK
HTTP/1.1 304 Not Modified
* 響應頭:包含了對服務器的描述、對返回數據的描述
Server: Apache/2.4.10 (Unix) PHP/5.5.20
Content-Type: text/html
Content-Length: 660
Date: Thu, 04 Jun 2015 19:31:50 GMT
ETag: "294-4e1862f57e7c0"
* 實體內容:服務器返回給客戶端的具體二進制數據