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是不儲...