一甜癞、HTTP
http,全稱HyperText Transfer
Protocol宛乃,超文本傳輸協(xié)議(協(xié)議悠咱,定義了一種規(guī)則)
是一個應用層的協(xié)議
用于分發(fā)協(xié)作
是萬維網的數據交流的基礎
二、URL/URI
1征炼、定義
- URI:Uniform Resource Identifier 統(tǒng)一資源標識符
- URL:Uniform Resource Location 統(tǒng)一資源定位符
URL是使用瀏覽器等訪問web頁面的時候需要輸入的網頁地址
http://www.baidu.com
URI是更通用的資源標識符析既,URL是它的一個子集。URI由兩個主要的子集構成
- URL:通過描述資源的位置來描述資源
- URN:通過名字來識別資源谆奥,和位置無關
2眼坏、我們常見的URL主要由三部分組成
- 方案,也就是我們常說的協(xié)議
- 服務器位置
- 資源路徑
看個例子
http://samaritan89.github.io/f2e/js/ajax.html
通用的URL由9部分組成
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
9部分具體解釋:
- <scheme>:對于web頁面來說最常用的協(xié)議就是http和https
- <user>:<password>:user和password現在不常見了酸些,不會在URL明文書寫用戶名和密碼了宰译,都是通過登錄的方式
- <host>:主機可以是IPO地址過著域名
- <port>:端口號用來區(qū)分主機上的進程,方便找到web服務器擂仍,http默認是80
- <path>:path是資源的路徑囤屹,也就是存放位置,不一定和物理路徑完全對應逢渔,符合web服務器路由約定即可
- <params>:params肋坚,在一些協(xié)議中需要參數來訪問資源,例如ftp是二進制還是文本傳輸肃廓,參數是名值對智厌,用;隔開
- <query>:query:這個是get請求最常用的傳遞參數方式了 ?a=1&b=2&=3
- <hash>:hash也成為片段,設計為標識文檔的一部分盲赊,很多MVVM框架用作了路由功能
三铣鹏、HTTP報文
1、定義
規(guī)定瀏覽器和服務器之間傳輸的數據有固定的格式哀蘑,即報文
英文資料參考:
2诚卸、報文的組成
HTTP報文是簡單的格式化數據塊葵第,每個報文都包含一條來自客戶端的請求或者一條來自服務器的響應,由3個部分組成
- 對報文進行描述的起始行 —— start line
- 包含屬性的首部塊 —— header
- 可選的包含數據的主體部分 —— body
HTTP/1.0 200 OK
content-type: text/plain
content-length: 19
Hi, I'm a message
3合溺、報文類型
- 請求報文
- 響應報文
(1)請求報文:
在瀏覽器上輸入url卒密,瀏覽器將發(fā)送一條請求,之后做dns的查詢棠赛,找到對應服務器哮奇。那么,請求在網絡傳輸中是一種什么樣的格式睛约?即為請求報文
//向web服務器請求一個動作
<method><request-URL><version> /* 包含http版本號和請求的url鼎俘,以及對應的狀態(tài)碼 */
<headers>
<entity-body>
(2)響應報文
把請求結果返回給客戶端
<version><status><reason-phrase>
<headers>
<entity-body>
首部和方法配合,共同決定了服務器和客戶端能做什么
4辩涝、報文首部速記
四贸伐、狀態(tài)碼
戳文狀態(tài)碼了解一下:
#hello,JS:13-01:Ajax 使用(含狀態(tài)碼
- 301膀值,客戶請求的文檔在其他地方棍丐,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL沧踏。配置server時歌逢,在配置文件中添加301和url。用戶訪問這個url時翘狱,看到301這個重定向秘案,請求到達服務器,服務器將301狀態(tài)碼寫入潦匈,瀏覽器收到該響應阱高,寫入記憶內部,下次訪問的時候茬缩,瀏覽器看到301這個狀態(tài)碼時赤惊,就會進行url的重定向。
- 304凰锡,關于緩存機制未舟。
- 400,請求有問題掂为。
- 403裕膀,訪問有權限。