HTTP請求由客戶端發起,是指從客戶端到服務器端的請求消息。
如何發起HTTP請求
借助HTTP工具並且知道URL即可發起這個HTTP請求。
例如:
在瀏覽器地址欄輸入一個URL,按下回車即可發起這個HTTP請求。
URL(統一資源定位符 / 網址)格式為:
協議://服務器IP地址(:端口)/路徑/(?查詢) //默認端口可省略,查詢部分可能沒有注:
1. IP地址是用來唯一標識互聯網上計算機的邏輯地址。每台連網計算機都依靠IP地址來互相區分、聯系。但IP地址是數字標識,難以記憶和書寫,因此在IP地址的基礎上又發展出一種符號化的地址方案,來代替數字型的IP地址。每一個符號化的地址都與特定的IP地址對應。這個與網絡上的數字型IP地址相對應的字符型地址,就被稱為域名。多條域名可以同時解析一條ip,但是一條域名無法解析多條ip。
2. 端口可省略,省略時使用默認端口,HTTP協議默認端口號80,HTTPS協議默認端口號443。
例如:
https :// www.baidu.com /baidu ?tn=monline_7_dg&ie=utf-8&wd=1
協議 :// 服務器IP地址(域名)/路徑 ?查詢
https :// www.w3school.com.cn /html/html_jianjie.asp
協議 :// 服務器IP地址(域名)/路徑(帶層次的文件路徑)/
在Linux系統中可以用curl命令發起HTTP請求,Windows系統中可以使用curl.exe工具(需自行下載)。
HTTP請求格式
HTTP請求包括三個部分:請求行 、請求頭 、請求正文。(可在瀏覽器里按下F12查看)
eg.
POST /page/index/checkCode.php HTTP/1.1
Host: cspsj.noi.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:94.0) Gecko/20100101 Firefox/94.0
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://cspsj.noi.cn/
Content-Length: 17
type=getCheckCode
其中第一行為請求行;
組成方式為:請求方法(POST) / 在該域名根目錄下所請求的地址(/page/index/checkCode.php) / 使用的協議以及版本(HTTP 1.1版本)
第二行至空白行都為請求頭,為客戶端向服務器傳遞的附加信息,也可傳遞客戶端自身的信息。
最后一行為請求正文。(最常出現於POST請求,GET請求沒有請求正文)
HTTP請求方法
1.GET
GET方法用於獲取請求頁面的指定信息,返回實體主體。我們平時打開並瀏覽一個普通網頁時一般都是GET請求,比如現在點開這篇博客(
2.POST
與GET相似,不同點在於POST請求有請求主體,用於向服務器傳送大量數據,並且信息不會顯示在URL中,相比GET更加安全。用於上傳文件,登錄注冊等。
注:GET請求與POST請求區別
3.HEAD
除了並不返回消息主體之外,與GET相同,用於獲取消息報頭(響應頭)。可以檢驗一個資源的有效性(可以了解到存於響應頭中的內容),因為不返回消息主題(響應正文)所以速度很快。
4.PUT
可以把請求中的實體部分保存在請求的資源下,如果請求的資源在服務器中已經存在,則會用請求中的實體部分替換原請求資源。用於創建新的資源或替換指定的資源。
5.DELETE
用於請求刪除服務器所請求的指定資源。
6.TRACE
可以回顯服務器收到的請求,使得用戶可以了解數據被請求那一方的接收情況並且用於診斷和調試。
7.CONNECT
此方法被用於能夠將連接改為管道方式的代理服務器。
8.OPTIONS
用於請求獲得所請求資源在通信過程中可以使用的功能選項,或者查看服務器的性能。
請求頭
只用於HTTP請求中,可以使客戶端向服務器傳遞客戶端自身信息,附加信息。