學點HTTP知識

WBOY
發布: 2016-09-23 11:13:14
原創
930 人瀏覽過

不學無術

又一次感覺到不學無術,被人一問Http知識盡然一點也沒答上來,丟人丟到家了啊。平常也看許多的技術文章,為什麼到了關鍵時刻就答不出來呢?

確實發現一個問題,光看是沒有用的,需要實踐。看別人說的頭頭是道自己也覺得理解了,但發現再讓自己複述一遍可能完全就答不上來。這就是因為看別人的文章比較像看小說,腦子裡跟著作者的思路感覺好像挺懂的,其實也就是過眼雲煙。所以想要學好技術

  • 一方面要看別人的總結,像是文章、書、原始碼
  • 接著就是要自己去總結,例如寫寫博客,跑跑書裡面的程式碼,這樣可以加深理解。
  • 最後就是要去用,特別是在工作中。如果一項技能已經用的非常熟練了想要忘都難。

為了讓自己對HTTP知識多一點印象,寫一篇部落格吧。由淺入深,慢慢來。

先簡單認識http

HTTP是超文本傳輸協議,這個協定是應用層協定。我的理解是在伺服器產生一段文本,在網路上傳輸,客戶端可以對其解析成視圖並提供互動。

http是由請求與回應構成,在設計時是無狀態協議,這樣每一次的操作基本上就是客戶端發起請求,服務端回傳回應。

Http請求與回應都包含:請求行、訊息標頭和訊息體。

常見的Header

說起header不複雜,但細細一看蠻多學問在裡面,只不過確實有點多,主要是還是先關註一些常見的吧。

通用頭域

  • Cache-Control:指定請求和回應遵循的快取機制
  • Connection:keep-alive:保持與伺服器的TCP連線
  • Date:訊息發送的日期時間
  • Pragma:用來包含實作特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1協定中,它的意義和Cache-Control:no-cache相同。
  • Transfer-Encoding:chunked:分塊編碼

Request Header

  • Request URL:請求的URL
  • Request Method:要求的方法(OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT、PATCH)
  • Remote Address:遠端伺服器的位址
  • Accept:指定客戶端接收的MIME類型(text/html,application/xhtml+xml,application/xml)
  • Accept-Encoding:指定客戶端接收的編碼,通常用於指定壓縮演算法(gzip, deflate, sdch)
  • Accept-Language:指定客戶端接收的語言(zh-CN,zh)
  • Accept-Charset:指定客戶端接收的字元集(gb2312,uft-8)
  • Cookie:客戶端cookie資訊
  • Host:請求的網域
  • User-Agent:發起請求的使用者訊息,作業系統、瀏覽器版本等
  • If-Modified-Since:伺服器上一次修改的時間

response header

  • Content-Encoding:回應套件的編碼及壓縮演算法(gzip)
  • Content-Type:回應包的資源類型(text/html; charset=utf-8)
  • Expires:過期時間
  • Last-Modified:最後修改時間

常見的狀態碼

  • 200:請求已成功
  • 201:請求已經實現,而且有一個新的資源已經依據請求的需要而建立,且其 URI 已經隨Location 頭信息返回
  • 301/302:重定向
  • 304:客戶端請求的資源未修改
  • 400:錯誤的請求包
  • 404:請求失敗,指定資源找不到
  • 500:伺服器內部錯誤,通常是伺服器出錯了沒辦法回傳回應套件

 

 

註:此文章為原創,歡迎轉載,請在文章頁面明顯位置給出此文連結!
若您覺得這篇文章還不錯請點擊下右下角的推薦,非常感謝!
http://www.cnblogs.com/5207
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板