五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【re:從零開始的網(wǎng)站搭建教程】#2-請求數(shù)據(jù)的獲取

2021-09-13 21:30 作者:星與闇之痕  | 我要投稿

先來看一看更具體的一個http請求的結(jié)構(gòu)

http結(jié)構(gòu)

#http頭、http體

http頭里一般的是通信所需的默認數(shù)據(jù),而http體里是我們真正想要發(fā)送的數(shù)據(jù)。http頭有固定明確的格式,http的數(shù)據(jù)則是我們自己選擇的數(shù)據(jù),格式不固定。簡單的區(qū)分就是http的第一個空行前是頭,空行后是體。

由瀏覽器發(fā)給服務(wù)器的叫請求頭,反之則叫響應(yīng)頭。

#請求模式

從圖中可以看出瀏覽器發(fā)送的請求中的第一行是GET / HTTP/1.1,其中GET是請求的模式,除了GET以外還有POST,PUT,DELET等等。如果你學(xué)過數(shù)據(jù)庫你可以把GET、POST、PUT、DELET分別理解為數(shù)據(jù)庫操作的查、改、增、刪這些操作。在http中沒有這么嚴格,你可以根據(jù)情況任意選擇模式。GET和POST請求已經(jīng)足夠完成所有事情,我們目前就只需要研究GET和POST就夠了。

1.GET

GET請求一般用于請求頁面,有大小限制。限制多少根據(jù)瀏覽器和服務(wù)器不同而不同,不要超過2kb為佳。GET的數(shù)據(jù)一般在http頭中,不建議用GET來傳輸大量數(shù)據(jù)和敏感數(shù)據(jù)。

2.POST

POST請求一般用于提交數(shù)據(jù),無大小限制。不過在某些服務(wù)器中為了性能會限制大小,但POST本身是沒有大小限制的。POST的數(shù)據(jù)一般在http體中,傳輸大量數(shù)據(jù)使用POST。

#HTTP頭項目簡析

一、請求頭

1.GET / HTTP/1.1

GET / HTTP/1.1是請求頭的第一行,也是最重要的一行。

其中第一個為請求模式,這里是GET請求;第二個為目錄,是在域名后跟的用/劃分的一串,只有一個斜杠表示網(wǎng)站的根目錄,假如說訪問的不是index這個目錄的話那就是/index,整個第一行也就變成GET /index?HTTP/1.1;最后的HTTP/1.1表示當(dāng)前http協(xié)議的版本。

2.Cookie

這也是相當(dāng)重要的一行,保持登錄狀態(tài)、驗證用戶身份需要靠它。

3.Range

這個沒有前兩個重要,在視頻播放、斷點續(xù)傳會用到。

二、響應(yīng)頭

HTTP/1.1 200 OK

HTTP/1.1表示當(dāng)前http協(xié)議的版本;200表示響應(yīng)碼;OK是響應(yīng)信息。

(1)響應(yīng)碼

常用的有:

1開頭表示需要做出一些改變

HTTP/1.1?101?Switching?Protocols (切換協(xié)議)

2開頭表示服務(wù)器收到并且成功解析、執(zhí)行數(shù)據(jù)

HTTP/1.1?200 OK (成功)

HTTP/1.1?205?Reset?Content (成功,但不用刷新頁面)

HTTP/1.1?206?Partial?Content (成功,數(shù)據(jù)為追加的數(shù)據(jù))

4開頭表示用戶發(fā)送的數(shù)據(jù)存在問題,和服務(wù)器無關(guān)

HTTP/1.1?400?Bad?Request (失敗,http請求格式錯誤)

HTTP/1.1?404?Not?Found (失敗,所請求的文件和頁面不存在)

HTTP/1.1?405?Method?Not?Allowed (失敗,不支持的請求模式)

HTTP/1.1?414?Request-URI?Too?Large (失敗,請求太龐大)

5開頭表示服務(wù)器出現(xiàn)問題

HTTP/1.1?500?Internal?Server?Error (錯誤,服務(wù)器內(nèi)部錯誤)

2.Server

不是必要項目,是服務(wù)器程序的名字。

3.content-type

這一項規(guī)定了文件的格式和瀏覽器解析時的文本編碼,若沒有正確設(shè)置瀏覽器則無法正確渲染頁面,并且可能出現(xiàn)亂碼。

#編寫程序接收瀏覽器的請求數(shù)據(jù)

啟動剛剛編寫的文件,打開瀏覽器,地址欄輸入127.0.0.1,看到打印了這個

不太好看,手動格式化一下

發(fā)現(xiàn)每一行最后都是\r\n,最后一個空行也有\(zhòng)r\n。在編程語言中往往用\r表示回車\n表示換行,雖然直接\n就能換行,但\r\n才時一個標準的換行。

所以在python中區(qū)分請求頭是否結(jié)束就找有沒有出現(xiàn)\r\n\r\n就行了。

修改一下剛剛的代碼就可以截取請求頭了

不過于后面沒有更多的數(shù)據(jù),看不出太多效果。

【re:從零開始的網(wǎng)站搭建教程】#2-請求數(shù)據(jù)的獲取的評論 (共 條)

分享到微博請遵守國家法律
青川县| 葫芦岛市| 昌吉市| 靖江市| 金溪县| 洛浦县| 黑龙江省| 镇江市| 克什克腾旗| 抚州市| 广德县| 遵义市| 太仆寺旗| 柳林县| 盐山县| 和平区| 健康| 福贡县| 自治县| 曲靖市| 宾阳县| 天台县| 佛教| 岳普湖县| 平昌县| 巢湖市| 鄂尔多斯市| 内江市| 浮梁县| 丰原市| 浪卡子县| 岳阳县| 临城县| 镇远县| 马鞍山市| 富平县| 兴化市| 兰考县| 平安县| 龙岩市| 德阳市|