URL - 統(tǒng)一資源定位符
通過一個(gè)URL能夠找到互聯(lián)網(wǎng)上唯一的1個(gè)資源
URL基本格式:協(xié)議://主機(jī)地址/路徑
主機(jī)地址(存放資源的主機(jī)):1.ip地址油宜、2.域名
協(xié)議:不同的協(xié)議液南,代表著不同的資源查找方式鹃唯、資源傳輸方式
HTTP(Hypertex Transfer Protocol)
超文本傳輸協(xié)議禀晓,訪問的是遠(yuǎn)程的網(wǎng)絡(luò)資源莉擒,格式是:http://
file
訪問的是本地計(jì)算機(jī)上的資源棒动,格式是:file://(不加主機(jī)地址)
mailto
訪問的是電子郵件地址,格式是mailto:
FTP
訪問的是共享主機(jī)的文件資源叨叙,格式是ftp://
HTTP協(xié)議的作用:規(guī)定客戶端和服務(wù)器之間的數(shù)據(jù)傳輸格式锭弊;讓客戶端和服務(wù)器能有效的進(jìn)行數(shù)據(jù)溝通
HTTP特點(diǎn):簡(jiǎn)單快速(協(xié)議簡(jiǎn)單所以程序規(guī)模小)摔敛、靈活(允許傳輸各種數(shù)據(jù))廷蓉、HTTP0.9和1.0使用非持續(xù)連接(限制每次連接只處理一個(gè)請(qǐng)求,服務(wù)器對(duì)客戶端的請(qǐng)求做出相應(yīng)后马昙,馬上斷開連接)
HTTP的基本通信過程(兩大步驟):請(qǐng)求(客戶端向服務(wù)器發(fā)送請(qǐng)求)桃犬、響應(yīng)(服務(wù)器返回?cái)?shù)據(jù)給客戶端)
HTTP請(qǐng)求(客戶端向服務(wù)器發(fā)送請(qǐng)求):請(qǐng)求頭:包含對(duì)客戶端的環(huán)境描述、客戶端請(qǐng)求信息等
請(qǐng)求體:客戶端發(fā)給服務(wù)器的具體內(nèi)容
HTTP響應(yīng)(服務(wù)器返回?cái)?shù)據(jù)給客戶端):響應(yīng)頭:包含了服務(wù)器的描述行楞、對(duì)數(shù)據(jù)的描述
響應(yīng)題:服務(wù)器返回給客戶端的具體數(shù)據(jù)
HTTP請(qǐng)求的方法:GTE攒暇、POST、OPTIONS子房、HEAD形用、PUT、DELETE证杭、TRACE田度、CONNECT、PATCH
PUT:增
DELETE:刪
POST:改
GET:查
實(shí)際上GET解愤、POST都能做到增刪改查
GET和POST的主要區(qū)別表現(xiàn)在數(shù)據(jù)傳遞上
GET
在請(qǐng)求URL后面以?的形式跟上發(fā)給服務(wù)器的參數(shù)镇饺,多個(gè)參數(shù)之間用&隔開,比如
http://www.test.com/login?username=123&pwd=234&type=JSON
由于瀏覽器和服務(wù)器對(duì)URL長(zhǎng)度有限制送讲,因此在URL后面附帶的參數(shù)是有限制的奸笤,通常不能超過1KB
POST
發(fā)給服務(wù)器的參數(shù)全部放在請(qǐng)求體中
理論上,POST傳遞的數(shù)據(jù)量沒有限制(具體還得看服務(wù)器的處理能力)
選擇GET和POST的建議
如果要傳遞大量數(shù)據(jù)哼鬓,比如文件上傳监右,只能用POST請(qǐng)求
GET的安全性比POST要差些,如果包含機(jī)密异希、敏感信息健盒,建議用POST
如果僅僅是索取數(shù)據(jù)(數(shù)據(jù)查詢),建議使用GET
如果是增加称簿、修改味榛、刪除數(shù)據(jù),建議使用POST
HTTP協(xié)議規(guī)定:一個(gè)完整的由客戶端發(fā)給服務(wù)器的HTTP請(qǐng)求包中包含以下內(nèi)容:
請(qǐng)求頭:包含了對(duì)客戶端的環(huán)境描述予跌、客戶端請(qǐng)求信息等
GET/minion.png HTTP/1.1 //包含了請(qǐng)求方式搏色、請(qǐng)求資源路徑、HTTP協(xié)議版本
Host:120.25.226.186:32812 //客戶端想訪問的服務(wù)器主機(jī)地址
User-Agent: Mozilla/5.0 // 客戶端的類型券册,客戶端的軟件環(huán)境
Accept: text/html, / // 客戶端所能接收的數(shù)據(jù)類型
Accept-Language: zh-cn // 客戶端的語言環(huán)境
Accept-Encoding: gzip // 客戶端支持的數(shù)據(jù)壓縮格式
請(qǐng)求體:客戶端發(fā)給服務(wù)器的具體數(shù)據(jù)频轿,比如文件數(shù)據(jù)(POST請(qǐng)求才會(huì)有)
客戶端向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器應(yīng)當(dāng)做出響應(yīng)烁焙,即返回?cái)?shù)據(jù)給客戶端
HTTP協(xié)議規(guī)定:1個(gè)完整的HTTP響應(yīng)中包含以下內(nèi)容
響應(yīng)頭:包含了對(duì)服務(wù)器的描述航邢、對(duì)返回?cái)?shù)據(jù)的描述
HTTP/1.1 200 OK // 包含了HTTP協(xié)議版本、狀態(tài)碼骄蝇、狀態(tài)英文名稱
Server: Apache-Coyote/1.1 // 服務(wù)器的類型
Content-Type: image/jpeg // 返回?cái)?shù)據(jù)的類型
Content-Length: 56811 // 返回?cái)?shù)據(jù)的長(zhǎng)度
Date: Mon, 23 Jun 2014 12:54:52 GMT // 響應(yīng)的時(shí)間
響應(yīng)體:服務(wù)器返回給客戶端的具體數(shù)據(jù)膳殷,比如文件數(shù)據(jù)
常見響應(yīng)狀態(tài)碼:
200 OK 請(qǐng)求成功
400 Bad Request 客戶端請(qǐng)求的語法錯(cuò)誤,服務(wù)器無法解析
404 Not Found 服務(wù)器無法根據(jù)客戶端的請(qǐng)求找到資源
500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤九火,無法完成請(qǐng)求