請求:客戶端根據服務器地址把數據發送給服務器的過程叫請求。html
相應:服務器將請求的處理結果發送給瀏覽器的過程叫響應。node
什麼是HTTP?面試
概念:超文本傳輸協議。數據庫
HTTP有什麼做用?小程序
做用:規範了瀏覽器和服務器的數據交互格式。微信小程序
HTTP有什麼特色?瀏覽器
特色:簡單快捷,靈活,無鏈接,無狀態。緩存
特色:在服務器當中就主要是一個數據庫,把全部的業務邏輯以及界面都交給客戶端完成安全
優勢:較爲安全,用戶界面豐富,用戶體驗好服務器
缺點:每次升級都要從新安裝,針對於不一樣的操做系統開發,可移植性差
特色:基於瀏覽器訪問的應用
把業務層交給服務器來完成,客戶端僅僅作界面的渲染和數據的交換
優勢:只開發服務器端,能夠跨平臺,移植性很強
缺點:安全性比較低,用戶體驗較差
WEB網頁,它用於表示網絡主機上供外界訪問的資源.
指Web頁面中供人們瀏覽的數據始終是不變.
指Web頁面中供人們瀏覽的數據是由程序產生的,不一樣時間點訪問Web頁面看到的內容各不相同.
全部的Web資源都放在一個Web服務器當中
Web服務器就是能夠供外界訪問Web資源的一個軟件
Web資源放到指定的目錄當中,就能夠經過對應的端口在瀏覽器當中訪問到
協議://主機地址:端口號/資源地址
http://www.it666.com:80/index.html
當咱們在瀏覽器當中訪問一個地址的時候,爲何就能看到一個頁面
BS結構流程圖
請求:
把客戶端請求發送給服務器
響應:
服務器把你要的數據發送給客戶端
請求與響應都要必定的格式:
約定好客戶端以什麼樣的格式把數據給服務器
約定好服務器以什麼樣的格式把數據給客戶端
這個約定使用的就是HTTP協議
瀏覽器
Android程序
IOS程序
微信小程序
PHP服務器
Tomcat服務器
nodeJS服務器
約束雙方規範的一個準測
HTTP 超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最爲普遍的一種網絡協議
全部的WWW文件都必須遵照這個標準
設計HTTP最初的目的是爲了提供一種發佈和接收HTML頁面的方法
約束請求與響應的規則
請求
響應
請求與響應都是成對存在的
請求方式
POST
GET
請求的資源
/Myxq/login.html?username=myxq&pwd=1234
協議版本
HTTP/1.0,發送請求,建立一次鏈接,得到一個Web資源,鏈接斷開.
HTTP/1.1,發送請求,建立一次鏈接,得到多個Web資源,保持鏈接.
2. 請求頭
請求頭是客戶端發送給服務器端的一些信息
使用鍵值對錶示key : value
Referer.瀏覽器通知服務器,當前請求來自何處。若是是直接訪問,則不會有這個頭。經常使用於:防盜鏈
If-Modified-Since.瀏覽器通知服務器,本地緩存的最後變動時間
Cookie.用於存放瀏覽器緩存的cookie信息
User-Agent. 瀏覽器通知服務器,客戶端瀏覽器與操做系統相關信忘
Connection .保持鏈接狀態, Keep-Alive鏈接中, close已關閉
Host.請求的服務器主機名
Content-Length.請求體的長展
Content-Type.若是是POST請求,會有這個頭,默認值爲application/x-www-form-urlencoded,表示請求體內容使用url編碼
Accept.瀏覽器可支持的MIME類型,文件類型的一種描述方式。
Accept-Encoding.瀏覽器通知服務器,瀏覽器支持的數據壓縮格式.如: GZIP壓縮
Accept-Language.瀏覽器通知服務器,瀏覽器支持的語
當請求方式是POST時,請求體會有請求的參數
若是請求方式爲get,那麼請求參數不會出如今請求體中,會拼接在url地址後面
狀態碼
200:請求成功
302:請求重定向
304:請求資源沒有改變,訪問本地緩存
404:請求資源不存在,一般是用戶路徑編寫錯誤,也多是服務器資源已刪除.
500:服務器內部錯誤.一般程序拋異常.
其它狀態碼
成功
重定向
客戶方錯誤
服務器錯誤
服務器端將信息以鍵值對的形式返回給客戶端
常見請求頭
Location:
指定響應的路徑,須要與狀態碼302配合使用,完成跳轉
Content-Type:
響應正文的類型(MIME類型)
Content-Disposition:
經過瀏覽器如下載方式解析正文
Set-Cookie:
服務器向瀏覽器寫入cookie
Content-Encoding:
服務器使用的壓縮格式
Content-length:
響應正文的長度
Refresh:
定時刷新
Server:
服務器名稱,默認值:Apache-Coyote/1.1.能夠經過conf/server.xml配置進行修改
Last-Modified:
服務器通知瀏覽器,文件的最後修改時間.
響應體是服務器回寫給客戶端的頁面正文
瀏覽器將正文加載到內存
而後解析渲染顯示頁面內容
返回服務器針對特定資源所支持的HTTP請求方法,也能夠利用向Web服務器發送’*’的請求來測試服務器的功能性
請求指定的頁面信息,並返回頭部信息
請求指定的頁面信息,並返回實體主體
向指定資源提交數據進行處理請求
向指定資源位置上傳其最新內容
請求服務器刪除Request-URL所標識的資源
回顯服務器收到的請求,主要用於測試或診斷
HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器
面試可能問的************************
GET方法向頁面請求發送參數
地址和參數信息中間用?字符分隔http://www.it666.com/hello?key1 =value1&key2=value2
查詢寧符串會顯示在地址欄的URL中,不安全,請不要使用GET請求提交敏感數據
GET方法有大小限制:請求字符串中最多隻能有1024個字符
GET請求可以被緩存
GET請求會保存在瀏覽器的瀏覽記錄中
能夠添加書籤
編碼類型爲application/x-www-form-urlencoded
只容許ASCII字符類型,不能用二進制流
點擊刷新時,不會有反應
GET請求主要用以獲取數據
POST方法向頁面請求發送參數
使用POST方法時,查詢字符串在POST信息中單獨存在,和HTTP請求一塊兒發送到服務器
編碼類型爲:application/x-www-form-urlencoded or multipart/form-data.請爲二進制數據使
用multipart編碼
沒有歷史記錄
參數類型沒有限制,能夠是字符串也能夠是二進制流
數據不會顯示在地址欄中,也不會緩存下來或保存在瀏覽記錄中,因此
看POST求情比GET請求安全,但也不是最安全的方式。如須要傳送敏
感數據,請使用加密方式傳輸
查詢字符串不會顯示在地址欄中
Post傳輸的數據量大,能夠達到2M,而Get方法因爲受到URL長度限制,只能傳遞大約1024字節。
Post就是爲了將數據傳送到服務器段,Get就是爲了從服務器段取得數據