HTTP全稱是HyperText Transfer Protocol翁狐,即:超文本傳輸協(xié)議锣吼,瀏覽器和Web服務器之間就會通過HTTP在Internet上進行數(shù)據(jù)的發(fā)送和接收洼冻。HTTP是一個基于請求/響應模式的、無狀態(tài)的協(xié)議胧华。即我們通常所說的Request/Response。
- 發(fā)送請求Request
客戶端發(fā)送一個HTTP請求到服務器的請求消息包括以下內容
- 請求行
- 請求頭部
- 空行
- 請求數(shù)據(jù)
GET http://www.ecjtu.jx.cn/ HTTP/1.1
Host: www.ecjtu.jx.cn
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8 Cookie: UM_distinctid=15abb4abc1777b-01b1e80c9d3c39-67f1a39-1fa400-15abb4abc189b7
user=daaaaa&pass=aaaaaaaaaa
- 相應請求 Request
服務器接收并處理客戶端發(fā)過來的請求后會返回一個HTTP的響應信息宙彪。一個響應也由四個部分組成:
- 狀態(tài)行
- 消息頭部
- 空行
- 響應正文
狀態(tài)碼
- 1xx 指示信息:表示請求已接收矩动,繼續(xù)處理
- 2xx 用于表示請求成功。
- 3xx 重定向--要完成請求必須進行更進一步的操作
- 4xx 用于指出客戶端的錯誤您访。
- 5xx 用于支持服務器錯誤铅忿。
狀態(tài)碼的職責是當客戶端向服務器發(fā)送請求時,描述返回的請求結果灵汪。借助狀態(tài)碼檀训,用戶可以知道服務器端是正常處理了請求,還是出現(xiàn)了錯誤
常見狀態(tài)碼
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤享言,不能被服務器所理解
401 Unauthorized //請求未經授權峻凫,這個狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //服務器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在览露,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發(fā)生不可預期的錯誤 503 Server Unavailable //服務器當前不能處理客戶端的請求荧琼,一段時間后可能恢復正常
HTTP請求方法:
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法差牛。
- GET 通常用于請求服務器發(fā)送某個資源
- HEAD 類似于get請求命锄,只不過返回的響應中沒有具體的內容,目的是為了在不獲取資源的情況下偏化,獲取資源的信息脐恩,查看資源是否存在
- POST 用于向服務器發(fā)送數(shù)據(jù),通常用來支持HTML的表單(input侦讨、select驶冒、textarea),表單中的數(shù)據(jù)會被發(fā)送到服務器韵卤。數(shù)據(jù)被包含在請求體中骗污。
- PUT 從客戶端向服務器傳送的數(shù)據(jù)取代指定的內容
- DELETE 請求服務器刪除指定的數(shù)據(jù)。
- CONNECT HTTP/1.1協(xié)議中預留給能夠將連接改為管道方式的代理服務器沈条。
- OPTIONS 允許客戶端查看服務器的性能需忿。
- TRACE 回顯服務器收到的請求,主要用于測試或診斷。
URI贴谎、URL和URN之間的區(qū)別
URI全名為Uniform Resource Indentifier(統(tǒng)一資源標識符)汞扎,用來唯一的標識一個資源,是一個通用的概念擅这,URI由兩個主要的子集URL和URN組成
URL全名為Uniform Resource Locator(統(tǒng)一資源定位符),通過描述資源的位置來標識資源
URN全名為Uniform Resource Name(統(tǒng)一資源命名)景鼠,通過資源的名字來標識資源仲翎,與其所處的位置無關,這樣即使資源的位置發(fā)生變動铛漓,其URN也不會變化