本篇文章簡單普及一些HTTP與HTTP協議的的相關內容。
一、HTTP
1、HTTP介紹
HTTP(超文本傳輸協議)詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,其實就是一套通信規則;
規定了客戶端發送給服務器的內容格式,叫請求協議;
也規定了服務器發送給客戶端的內容格式,稱爲響應協議。
2、URL是什麼?
統一資源定位符,其實就是一個網址,格式是:“協議名://域名:端口/路徑”;
例如:http://www.baidu.cn:80/index.html
二、請求協議
1、請求協議的格式
- 請求首行;(網址前端,請求方式、請求路徑、協議和版本)
- 請求頭信息;(鍵值對,請求頭名稱:請求頭內容)
- 空行; (用來與請求體分隔開)
- 請求體。 (請求的內容, GET沒有請求體,只有POST有請求體)
注意:瀏覽器發送給服務器的內容就這個格式的,如果不是這個格式服務器將無法解讀!
2、GET請求
特點:HTTP默認請求方式、沒有請求體、請求數據會暴露在地址欄中
常見的GET:1)在瀏覽器的地址欄中直接給出URL;2)點擊頁面上的超鏈接;3)提交表單時,表單默認使用GET請求,但可以設置爲POST
3、常見請求頭
- Response Header:響應頭
- Request Header:請求頭
- Accept:服務端能接收的文檔類型(有優先級)
- Accept-Encoding:支持的文檔壓縮類型
- Accept-language:能接收的語言
- Connection:客戶端支持的連接方式
- Content-Type: 表單的數據類型
- Cookie:一堆無意義的鍵值對,(請求中把上一次服務器響應中發送過來的Cookie在請求中一併發送去過)
- Host:域名(主機地址)
- User-Agent:訪問用戶的瀏覽器和主機信息
4、post請求
特點:數據不會出現在地址欄中、 數據的大小沒有上限、有請求體
注意:請求體中如果有中文或特殊符號,會使用URL編碼
如:%E5%BC%A0%E4%B8%89&password=123
5、修改網頁提交方式爲post請求
<form action="" method="post">
用戶:<input type="text" name="user"/>
<input type="submit" value="提交"/>
</form>
三、響應協議
1、響應協議格式
響應首行;
響應頭信息;
空行;
響應體。
注意:響應內容是由服務器發送給瀏覽器的內容,瀏覽器會根據響應內容來顯示。
2、響應信息
HTTP/1.1 200 OK:響應協議爲HTTP1.1,狀態碼爲200,表示請求成功,OK是對狀態碼的解釋;
Server:WSGIServer/0.2 CPython/3.5.2:服務器的版本信息; Content-Type;
text/html;charset=UTF-8:響應體使用的編碼爲UTF-8; Content-Length: 724:響應體爲724字節;
et-Cookie: JSESSIONID=C97E2B4C55553EAB46079A4F263435A4;
Path=/hello:響應給客戶端的Cookie; Date: Sun, 25 Sep 2020 05:22:04
GMT:響應的時間,這可能會有8小時的時區差;
3、狀態碼
它能夠說明響應的真正含義。
200:請求成功,瀏覽器會把響應體內容(通常是html)顯示在瀏覽器中;
404:請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;
500:請求資源找到了,但服務器內部出現了錯誤;
302:重定向,當響應碼爲302時,表示服務器要求瀏覽器重新再發一個請求,服務器會發送一個響應頭Location,它指定了新請求的URL地址。