網路 http協議

2021-10-10 11:14:28 字數 3938 閱讀 1863

http(hypertext transfer protocol) 即超文字傳輸協議,現在基本上所有web專案都遵從http協議。

目前絕大部分使用的都是http/1.1版本(1.0太老2.0仍在制訂中)。

url:就是我們俗稱的**。

urlencode和urldecode: 」/ ? :」 等這樣的字元, 已經被url當做特殊意義理解了. 例如 :+會被轉義為%2b

比如, 某個引數中需要帶有這些特殊字元, 就必須先對特殊字元進行轉義.urldecode就是urlencode的逆過程;

請求首行

請求方法 url 協議版本 \r\n

請求頭部

具有多行資料,每乙個資料都是乙個key;value的形式,每行資料使用\r\n進行分隔。

content-length:正文長度,防止粘包

referer:當前頁面從哪乙個頁面跳轉的

cookie:向伺服器提交瀏覽器本地儲存的認證資訊,認證資訊是之前登入伺服器的時候,伺服器返回回來的

tranfer-encoding:針對於正文而言,可以支援分塊傳輸

connecion:keep-alive:保持長連線

http協議傳輸層使用的是tcp協議,早期http是無狀態協議,使用tcp短連線

正文

響應首行

協議版本 狀態碼 狀態碼解釋 \r\n

狀態碼:

1xx:接收到請求且正在處理

2xx:請求正常處理完畢:eg:200 ok

3xx:重定向狀態,表示瀏覽器需要進行附加操作

4xx:伺服器無法處理這個請求 eg :404 page not found

5xx:伺服器處理出錯 eg:502 bad gateway

響應頭部

具有多行資料,每乙個資料都是乙個key;value的形式,每行資料使用\r\n進行分隔。

content-length:正文長度,防止粘包

referer:當前頁面從哪乙個頁面跳轉的

cookie:向伺服器提交瀏覽器本地儲存的認證資訊,認證資訊是之前登入伺服器的時候,伺服器返回回來的

tranfer-encoding:針對於正文而言,可以支援分塊傳輸

connecion:keep-alive:保持長連線

http協議傳輸層使用的是tcp協議,早期http是無狀態協議,使用tcp短連線

正文部分

http協議是應用層的協議,在傳輸層使用tcp協議,在網路層使用ip協議

http本身是為了處理大量的請求,設計在傳輸層使用tcp連線為短鏈結

目前http協議已經支援了長連線

http是沒有加密版本的協議,加密版本可以使用https

#include

"tcpsvr.hpp"

#include

#include

intmain

(int argc,

char

* ar**)

std::string ip = ar**[1]

;uint16_t port =

atoi

(ar**[2]

);tcpsvr ts;if(

!ts.

createsocket()

)if(!ts.

bind

(ip, port))if

(!ts.

listen()

) tcpsvr ser_ts;

while(1

) std::string buf;

ser_ts.

recv

(&buf)

;printf

("chrome say: %s\n"

, buf.

c_str()

);//正文資訊

//std::string body = "

";//c風格的格式化字串

//char buffer[10240] = ;

響應首行\r\n

響應頭部

content-length: \r\n

content-type: \r\n

\r\n

正文//snprintf(buffer, sizeof(buffer) - 1, "%s %s %s\r\ncontent-length: %lu\r\ncontent-type: %s\r\n\r\n", "http/1.1", "200", "ok", body.size(), "text/html");

//printf("buffer:%s\n", buffer);

//std::string header;

strlen(buffer));

//c++風格

http網路協議

http hypertext transport protocol 即超文字傳輸協議。主要分為客戶端到服務端的請求協議,服務端到客戶端的響應協議 1.請求報文 請求方法 get post head put delete get方法 http預設方法 沒有請求體 資料大小有限制 請求資料會顯示在瀏覽器...

網路協議(三) HTTP協議

http全稱是hypertext transfer protocal,即 超文字傳輸協議,http連線最顯著的特點是客戶端傳送的每次請求都需要伺服器回送響應,在請求結束後,會主動釋放連線。從建立連線到關閉連線的過程稱為 一次連線 http是乙個應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模...

網路協議 HTTP協議簡介

http的作用 http hyper text transfer protocol 超文字傳輸協議,是基於應用層 tcp ip參考模型 的通訊規範 是從web伺服器傳輸超文字到客戶端的傳輸協議,無狀態的傳輸協議 不僅能夠保證正確 快速 高效的傳輸超文字文件,而且可以確定資源載入順序等。http是不儲...