HTTP協議學習

2021-09-29 19:49:16 字數 3286 閱讀 4922

請求行(請求方法 路徑 協議)

請求頭(格式:key:value)

(空行)

主體資訊(可選)(傳送內容)

例子:post /taskmgr/gettablelist http/1.1

響應行(協議 狀態碼 狀態文字)

響應頭(key:value)

(空行)

主體資訊(可選)

例子:http/1.1 200 ok

content-type: text/html

content-length: 5

hello

方法

說明get

獲取乙個url指定的資源

head

獲取乙個指定的資源的資訊

post

向伺服器提交資料

put向伺服器提交資源

delete

請求伺服器刪除request-url標識的資源

trace

網路跟蹤

connect

與proxy之間的連線管理

options

查詢伺服器支援的方法

狀態碼定義

說明1xx

請求被接受

一般只在實驗環境下使用,websocket的協議也是1xx系列的

2xx成功

操作成功

3xx重定向

為了完成請求,採取進一步措施。nginx的負載均衡經常用到303、304

4xx客戶端錯誤

請求語法有錯或不能完全被滿足

5xx服務端錯誤

伺服器無法完成有效的請求

常見狀態碼

狀態碼說明

200請求成功

301永久重定向,瀏覽器位址列也會變

302臨時重定向,瀏覽器位址保持不變

304not modified 未修改

307重定向中保持原有的請求資料,比如nginx反向**、vpn**,

404資源未找到

503伺服器暫時不可用,訪問量過大時可能會出現,500也是

500伺服器內部錯誤

> telnet localhost 80
按下 ctrl + ]

歡迎使用 microsoft telnet client

escape 字元為 'ctrl+]'

microsoft telnet>

再按下回車,顯示全黑頁面,進行輸入即可

post請求要指定content-type和content-length

;telnet輸入下面內容,其中boundary是檔案內容的邊界,隨便自定義。瀏覽器上傳檔案其實也是這樣,把檔案內容用定界符包起來作為body部分再傳送

請求中傳送cookie

test.php

<?phpif (

$_cookie

['name']==

'admin'

)else

telnet

cookie:name=admin

使用fsockopen()開啟連線來傳送請求

<?php $f=

fsockopen

('localhost',80

,$err

,$errmsg);

// 返回的是檔案控制代碼

// 傳送請求

// 接收響應

while

($str

=fread($f

,32))

fclose($f

);

HTTP協議學習

1 什麼是http協議?http是超文字傳輸協議,是基於tcp ip協議之上實現的用於客戶端和伺服器之間資料傳輸的一種協議 2 什麼是http協議的無狀態?怎麼解決http協議的無狀態?解決 使用cookie或者session來保持會話 3 http支援的方法有哪些?一共有8種請求方法 get 獲取...

HTTP協議學習

面試過程中又乙個常見的問題,http協議,因為做伺服器開發如果用http協議的話,現在各種開源軟體都封裝好了,python中只需要簡單的繼承定義好的類,重寫get或者post等方法,幾行 就可以搭建起來乙個簡單的http伺服器,導致底層對程式設計師來說都是透明的了。但是面試中追求這個底層的問題還不少...

HTTP 協議學習

摘自 http簡介 http,hyper text transfer protocol 超文字傳輸協議 是用於從全球資訊網 www world wide web 伺服器傳輸超文字到本地瀏覽器的傳送協議。http是乙個基於tcp ip通訊協議來傳遞資料 過程 http協議工作於客戶端 服務端架構為上。...