#JS續(xù):8.1 HTTP學習

一、HTTP

http,全稱HyperText Transfer
Protocol,超文本傳輸協(xié)議(協(xié)議,定義了一種規(guī)則)
是一個應用層的協(xié)議
用于分發(fā)協(xié)作
是萬維網(wǎng)的數(shù)據(jù)交流的基礎

二、URL/URI

1、定義

  • URI:Uniform Resource Identifier 統(tǒng)一資源標識符
  • URL:Uniform Resource Location 統(tǒng)一資源定位符

URL是使用瀏覽器等訪問web頁面的時候需要輸入的網(wǎng)頁地址
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現(xiàn)在不常見了,不會在URL明文書寫用戶名和密碼了,都是通過登錄的方式
  • <host>:主機可以是IPO地址過著域名
  • <port>:端口號用來區(qū)分主機上的進程,方便找到web服務器,http默認是80
  • <path>:path是資源的路徑,也就是存放位置,不一定和物理路徑完全對應,符合web服務器路由約定即可
  • <params>:params,在一些協(xié)議中需要參數(shù)來訪問資源,例如ftp是二進制還是文本傳輸,參數(shù)是名值對,用;隔開
  • <query>:query:這個是get請求最常用的傳遞參數(shù)方式了 ?a=1&b=2&=3
  • <hash>:hash也成為片段,設計為標識文檔的一部分,很多MVVM框架用作了路由功能

三、HTTP報文

1、定義

規(guī)定瀏覽器和服務器之間傳輸?shù)臄?shù)據(jù)有固定的格式,即報文
英文資料參考:

2、報文的組成

HTTP報文是簡單的格式化數(shù)據(jù)塊,每個報文都包含一條來自客戶端的請求或者一條來自服務器的響應,由3個部分組成

  • 對報文進行描述的起始行 —— start line
  • 包含屬性的首部塊 —— header
  • 可選的包含數(shù)據(jù)的主體部分 —— body
HTTP/1.0 200 OK
content-type: text/plain
content-length: 19

Hi, I'm a message

3、報文類型

  • 請求報文
  • 響應報文
    (1)請求報文:

在瀏覽器上輸入url,瀏覽器將發(fā)送一條請求,之后做dns的查詢,找到對應服務器。那么,請求在網(wǎng)絡傳輸中是一種什么樣的格式?即為請求報文

//向web服務器請求一個動作
<method><request-URL><version> /* 包含http版本號和請求的url,以及對應的狀態(tài)碼 */
<headers>
<entity-body>

(2)響應報文
把請求結(jié)果返回給客戶端

<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)碼寫入,瀏覽器收到該響應,寫入記憶內(nèi)部,下次訪問的時候,瀏覽器看到301這個狀態(tài)碼時,就會進行url的重定向。
  • 304,關于緩存機制。
  • 400,請求有問題。
  • 403,訪問有權限。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

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