請求行(請求方法 路徑 協議)
請求頭(格式: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協議工作於客戶端 服務端架構為上。...