HTTP 初識(shí) ---非專業(yè)整理,菜鳥

前言:

現(xiàn)在正在從事Android開發(fā),一直以來對(duì)網(wǎng)絡(luò)模塊的認(rèn)識(shí)都非常的模糊。
對(duì)于HTTP這方便的知識(shí)一竅不懂,有時(shí)候看別人整理的資料太多理論知識(shí)根本看不懂,于是整理了這篇文章方便自己回顧,也希望能幫助像我一樣不太懂后臺(tái)的人。

URI和URL

URI (Uniform Resource Identifiers) 統(tǒng)一資源標(biāo)示符
URL(Uniform Resource Locator) 統(tǒng)一資源定位符,是一種特殊類型的URI。
URI和URL一直都經(jīng)?;靵y,不過細(xì)看了URL是怎么組成的,就不怕混亂了。

URL一般由三部組成:
  1. 協(xié)議(或稱為服務(wù)方式)
  2. 存有該資源的主機(jī)IP地址(有時(shí)也包括端口號(hào))
  3. 主機(jī)資源的具體地址。如目錄和文件名等

于是我理解成是一個(gè)地址


Request和Response

Request請(qǐng)求:

由請(qǐng)求行、請(qǐng)求頭部、空行、請(qǐng)求數(shù)據(jù)四個(gè)部分組成
請(qǐng)求行:
GET /[要訪問的資源] HTTP/1.1
POST / HTTP/1.1

Response響應(yīng):

由狀態(tài)行、消息報(bào)頭、空行、響應(yīng)正文四個(gè)部分組成
狀態(tài)行:
HTTP/1.1 200 OK

HTTP狀態(tài)碼:

狀態(tài)碼由三位數(shù)字組成,第一個(gè)數(shù)字定義了響應(yīng)的類型,共分為五類:
1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶端錯(cuò)誤--請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求

常見狀態(tài)碼:

200 OK //客戶端請(qǐng)求成功
400 Bad Request //客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解
403 Forbidden //服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)
404 Not Found //請(qǐng)求資源不存在,eg:輸入了錯(cuò)誤的URL
500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常

GET提交:

GET提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連。


HTTP協(xié)議

原理:

HTTP 是基于TCP/IP協(xié)議的應(yīng)用層協(xié)議。
它不涉及數(shù)據(jù)包(packet)傳輸,主要規(guī)定了客戶端和服務(wù)器之間的通信格式,默認(rèn)使用80端口。

Content-Type:

HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象,傳輸?shù)念愋陀蒀ontent-Type標(biāo)記。
瀏覽器是依靠Content-Type來判斷響應(yīng)的內(nèi)容是網(wǎng)頁還是圖片,是視頻還是音樂。
常用的Content-Type屬性:

屬性 內(nèi)容
text/html .html 網(wǎng)頁
image/jpeg .jpeg和.jpg 圖片文件
image/png .png 圖片文件
application/json json語句(接口的時(shí)候經(jīng)常用)
application/octet-stream .* (二進(jìn)制流,不知道文件類型)
application/x-www-form-urlencoded Form數(shù)據(jù)被編碼為名稱/值對(duì)
multipart/form-data Form數(shù)據(jù)被編碼為一條信息,頁面上的每個(gè)空間對(duì)應(yīng)消息中的一個(gè)部分。
application/x-www-form-urlencoded和multipart/form-data在Form中的用法:(大神總結(jié)的)
  • form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認(rèn)為application/x-www-form-urlencoded。
  • 當(dāng)action為get時(shí)候,瀏覽器用x-www-form-urlencoded的編碼方式把form數(shù)據(jù)轉(zhuǎn)換成一個(gè)字串(name1=value1&name2=value2...),然后把這個(gè)字串a(chǎn)ppend到url后面,用?分割,加載這個(gè)新的url。
  • 當(dāng)action為post時(shí)候,瀏覽器把form數(shù)據(jù)封裝到http body中,然后發(fā)送到server。
  • 如果沒有type=file的控件,用默認(rèn)的application/x-www-form-urlencoded就可以了。 但是如果有type=file的話,就要用到multipart/form-data了。
application/x-www-form-urlencoded的請(qǐng)求例子:

POST /app/user/login HTTP/1.1
Host: 10.240.131.7:8080
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: 05234002-4223-66fb-34f8-9be70557a745

username=potato&password=112233


好好學(xué)習(xí),天天向上。<( ̄oo, ̄)/


Potato_zero.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評(píng)論 19 139
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,750評(píng)論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,356評(píng)論 3 82
  • 我是狂熱的雞湯文愛好者。 朋友圈某菇?jīng)霭l(fā)文:難過。配圖是四十五度角仰望天空。我一定會(huì)評(píng)論:安全感是自己給自己的。 ...
    大玲是個(gè)乖寶寶閱讀 397評(píng)論 0 0
  • 時(shí)間在不自覺中從指縫溜走,畢業(yè)三年整,當(dāng)初那個(gè)菜鳥小妹也變成了職場(chǎng)老鳥,從前勇敢闖蕩的心已不存在,每日總想著可以不...
    小蘭小羽閱讀 304評(píng)論 0 1

友情鏈接更多精彩內(nèi)容