URL
1.URL 的全稱是 Uniform Resource Locator(統(tǒng)一資源定位符)
2.通過 1 個(gè) URL闭专,能找到互聯(lián)網(wǎng)上唯一的 1 個(gè)資源
3.URL就是資源的地址鼎兽、位置,互聯(lián)網(wǎng)上的每個(gè)資源都有一個(gè)唯一的 URL
URL格式:
1.基本格式: 協(xié)議頭://主機(jī)地址/路徑
? ? ?a.協(xié)議頭:不同的協(xié)議,表示不同的資源查找及傳輸方式?
? ? ?b.主機(jī)地址:存放資源主機(jī)的IP地址(域名)
? ? ?c.路徑: 資源主機(jī)中具體位置
HTTP協(xié)議
1.HTTP的全稱是Hypertext Transfer Protocol ,超文本傳輸協(xié)議
2.規(guī)定客戶端和服務(wù)器之間的數(shù)據(jù)傳輸格式
3.讓客戶端和服務(wù)器之間能有效的進(jìn)行數(shù)據(jù)溝通
4.HTTP協(xié)議是網(wǎng)絡(luò)編程使用最為廣泛的協(xié)議
HTTP協(xié)議特點(diǎn)
1.簡單快速:
因?yàn)镠TTP協(xié)議簡單,所以HTTP服務(wù)器的程序規(guī)模小,通信速度快
2.靈活
http允許傳輸任意類型的數(shù)據(jù)
3.http0.9和1.0使用非持續(xù)連接
限制每次連接只處理一個(gè)請求,服務(wù)器對客戶端的請求作出相應(yīng)后,立即斷開連接,這種方式可以節(jié)省傳輸時(shí)間
4.HTTP1.1使用持續(xù)連接
不必為每個(gè)web對象創(chuàng)建一個(gè)新的連接,一個(gè)連接可以傳送多個(gè)對象
HTTP通信過程
請求
1.http協(xié)議規(guī)定:一個(gè)完整的由客戶端發(fā)給服務(wù)器的http請求 需要包含以下內(nèi)容:
a.請求行:指定請求方法,請求資源路徑,以及HTTP協(xié)議版本
? ? ?# / 表示訪問根目錄
? ? ?GET / HTTP/1.1
請求頭:對客戶端的環(huán)境描述固逗、客戶端請求的主機(jī)地址等信息
請求頭中至少包含以下信息
? ?# 客戶端要訪問的服務(wù)器主機(jī)地址
? ? Host: m.baidu.com
請求頭中還可以包含以下信息
# 客戶端的類型,客戶端的軟件環(huán)境
User-Agent: iPhone AppleWebKit
# 客戶端所能接收的數(shù)據(jù)類型
Accept: text/html, */*
# 客戶端的語言環(huán)境
Accept-Language: zh-cn
# 客戶端支持的數(shù)據(jù)壓縮格式
Accept-Encoding: gzip
# 訪問結(jié)束后,是否斷開連接
Connection: Close
請求體(可選):客戶端發(fā)給服務(wù)器的具體數(shù)據(jù)炭懊,例如要上傳的文件數(shù)據(jù)
請求格式
每一項(xiàng)請求信息末尾使用\r\n
最后一個(gè)請求項(xiàng)末尾使用\r\n\r\n表示請求結(jié)束
響應(yīng)
HTTP協(xié)議規(guī)定:一個(gè)完整的HTTP 響應(yīng)包含以下內(nèi)容:
狀態(tài)行:包含了HTTP協(xié)議版本尉姨、狀態(tài)碼庵朝、狀態(tài)英文名稱
# 請求成功HTTP/1.1200OK# 內(nèi)容無變化HTTP/1.1304Not Modified
響應(yīng)頭:包含了對服務(wù)器的描述、對返回?cái)?shù)據(jù)的描述
# 服務(wù)器的類型
Server: Apache/2.4.10(Unix) PHP/5.5.20
# 返回?cái)?shù)據(jù)的類型
Content-Type: text/html
# 返回?cái)?shù)據(jù)的長度
Content-Length:660
# 響應(yīng)時(shí)間
Date: Thu,04Jun201519:31:50GMT
# ETag(HASH值又厉,用于檢測本地資源和服務(wù)器資源是否一致)
ETag:"294-4e1862f57e7c0"
實(shí)體內(nèi)容:服務(wù)器返回給客戶端的具體二進(jìn)制數(shù)據(jù)