控制協程(goroutine)的併發數量
阿新 • • 發佈:2021-08-23
HTTP
Hyper Text Transfer Protocol 超文字傳輸協議,定義了客戶端和伺服器通訊時傳送資料的格式
特點
- 基於TCP/IP的高階協議
- 預設埠號:80
- 基於請求/響應模型的:一次請求對應一次響應
- 靈活:HTTP允許傳輸任意型別的資料,正在傳輸的資料型別由Content-Type加以標記。
- 無狀態的:每次請求之間相互獨立,如果後續處理需要前面的資訊只能重傳
歷史版本:
- 1.0:每一次請求響應都會建立新的連線
- 1.1:複用連線
請求訊息資料格式
GET /login.html HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive Referer: http://localhost:8080/demo1?username=zhangsan Upgrade-Insecure-Requests: 1 If-Modified-Since: Sat, 24 Jul 2021 09:45:21 GMT If-None-Match: W/"280-1627119921927"
-
請求行(第1行):請求方式 資源路徑 http版本
GET /login.html HTTP/1.1
http協議有7中請求方式,常用的有2種- GET:
- 請求引數在請求行中,在url後。
http://www.itcast.cn/javaForum?name=lee&psd=hnxy
- 傳送的資料量有限,最多2KB。
- 請求引數在請求行中,在url後。
- POST:
- 請求引數在請求體中,傳遞資料的大小沒有限制
- 更加安全
- GET:
-
請求頭:包含客戶端的資訊
內容 說明 Accept 告知伺服器,客戶瀏覽器所支援的MIME型別。 Accept-Encoding 告知伺服器,客戶瀏覽器所支援的壓縮編碼格式。最常用的就是gzip壓縮。 Accept-Language 告知伺服器,客戶瀏覽器所支援的語言。一般都是zh_CN或en_US等。 Referer 告知伺服器,當前請求的來源。
只有當前請求有來源的時候,才有這個訊息頭。從位址列輸入的沒有來源。
作用:1 統計廣告點選次數 2 防盜鏈Content-Type 告知伺服器,請求正文的MIME型別。 Content-Length 告知伺服器,請求正文的長度。 User-Agent 瀏覽器相關資訊 Connection: Keep-Alive 連線的狀態:保持連線 If-Modified-Since 告知伺服器,客戶瀏覽器快取檔案的最後修改時間。 Cookie(********) 會話管理相關,非常的重要。 -
空行:分割請求頭和請求體
-
請求體(正文):封裝POST請求引數的,GET方式沒有。
響應訊息資料格式
響應訊息:伺服器傳送給客戶端的訊息
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Wed, 06 Jun 2018 07:08:42 GMT
<html>
<head>
<title>$Title$</title>
</head>
<body>
hello , response
</body>
</html>
-
響應行
-
組成:協議/版本 狀態碼 狀態碼描述
HTTP/1.1 200 OK
-
狀態碼:
狀態碼 說明 200 一切都OK> 302/307 請求重定向(客戶端行為,兩次請求,位址列發生改變) 304 請求資源未發生變化,使用快取 404 請求資源未找到 500 伺服器錯誤
-
-
響應頭
-
格式:頭名稱: 值
-
常見的響應頭:
訊息頭 說明 Location 請求重定向的地址,常與302,307配合使用。 Server 伺服器相關資訊。 Content-Type 告知客戶瀏覽器,響應正文的MIME型別。 Content-Length 告知客戶瀏覽器,響應正文的長度。 Content-Encoding 告知客戶瀏覽器,響應正文使用的壓縮編碼格式。常用的gzip壓縮。 Content-Language 告知客戶瀏覽器,響應正文的語言。zh_CN或en_US等等。 Content-Disposition 告知客戶瀏覽器,以下載的方式開啟響應正文。 Refresh 定時重新整理 Refresh:3;url=http://www.itcast.cn
Last-Modified 伺服器資源的最後修改時間。 Set-Cookie(*******) 會話管理相關,非常的重要 Expires:-1 伺服器資源到客戶瀏覽器後的快取時間 Catch-Control: no-catch 不要快取,//針對http協議1.1版本 Pragma:no-catch 不要快取,//針對http協議1.0版本
-
-
空行
-
響應體:傳輸的資料,可以是html文件。