Http的簡單介紹

以前寫過一篇使用HttpListener做爲簡單的HTTP服務器,後面實際項目中就用到了,測試發現,在Win7下若是不是以管理員權限運行程序,使用HttpListener是會出錯了。
因此就很好奇HTTP服務器是怎麼個回事。也就藉此機會熟悉一下HTTP協議的內容,用TCP來實現一遍HTTP客戶端和服務端,啥簡介的這裏就不寫了。直接記錄一下關鍵內容。
HTTP請求報文格式:
請求行CRLF
請求頭CRLF
CRLF
請求主體json

請求行格式:請求方法 URL 協議版本
請求頭信息與請求主體之間必需要添加CRLF。
若是是POST請求,則須要增長請求主體內容,此時請求頭中必須添加Content-Length信息,標明請求主體信息的內容長度。
簡易GET請求報文內容:
GET /remote HTTP/1.1\r\n
Host: localhost:1205\r\n
\r\n
Get請求無請求主體,因此請求主體爲空
簡易POST請求報文內容:
POST / HTTP/1.1\r\n
Host: localhost:1205\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length:22\r\n
\r\n
username=xiao&pwd=ming服務器

C#實現如圖:
Get
HTTP響應報文格式
狀態行CRLF
響應頭CRLF
CRLF
響應主體app

狀態行格式:協議版本 狀態碼 描述
簡易響應報文:
HTTP/1.1 200 OK\r\n
Content-Length:22\r\n
Content-Type: application/json\r\n
\r\n
{"info":"hello world"}
C#實現如圖:
響應測試

相關文章
相關標籤/搜索