如何使用http協議訪問伺服器

2021-10-04 16:01:13 字數 2307 閱讀 7493

在使用http訪問遠端伺服器前我們要先了解重點訪問的步驟

總的來說分為3點

1.建立tcp連線(三步握手協議)

第一次第一次握手:建立連線時,客戶端傳送syn包(seq=j)到伺服器,並進入syn_sent狀態,等待伺服器確認;syn:同步序列編號(synchronize sequence numbers)。

第二次第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(seq=k),即syn+ack包,此時伺服器進入syn_recv狀態。

第三次第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established(tcp連線成功)狀態,完成三次握手。

2.傳送http協議

http協議的制定

其中協議版本一般為 http/1.x

這裡以http/1.1為例

他定義的請求方法一般有

get是以實體的方式得到由請求uri所指定資源的資訊,如果請求uri只是乙個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。

post

用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求佇列中請求uri所指定資源的附加新子項,post被設計成用統一的方法實現下列功能:

(1)對現有資源的解釋

(2)向電子公告欄、新聞組、郵件列表或類似討論組發資訊。

(3)提交資料塊

(4)通過附加操作來擴充套件資料庫

head

向伺服器索要與get請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應訊息頭中的元資訊。該方法常用於測試超連結的有效性,是否可以訪問,以及最近是否更新。

其他方法

url代表的是**

下面談論頭部網域名稱稱

頭部網域名稱稱詳解

3.傳送連線請求,等待伺服器響應

在虛擬機器中輸入ping www.baidu.com可以得到以下資訊163.177.151.109就是伺服器的位址

在建立tcp通訊的時候http 伺服器的預設埠為 : 80

#include

#include

/* see notes */

#include

#include

#include

#include

#include

#include

#include

#include

intmain()

else

//2.連線伺服器

struct sockaddr_in addr;

addr.sin_family = af_inet;

addr.sin_port =

htons(80

); addr.sin_addr.s_addr =

inet_addr

("163.177.151.109");

int ret=

connect

(tcp_socket,

(struct sockaddr *

)&addr,

sizeof

(addr));

if(ret ==0)

else

//http 協議

;//協議的制定

("等待伺服器回應\n");

read

(tcp_socket,buf,

1024);

printf

("%s\n"

,buf);}

}

執行上面**返回200 ok說明訪問伺服器成功

Http協議 MySql伺服器

超文字傳輸協議 hypertext transfer protocol,http 是在網際網路上應用最為廣泛的一種網路協議。所有的www伺服器都基於該協議。http設計最初的目的是提供一種發布web頁面和接收web頁面的方法 http協議屬於應用層協議,是建立在tcp協議基礎之上的,http協議以客...

http協議(五)web伺服器

1 http1.1規範允許一台http伺服器搭建多個web站點。比如提供web託管服務的 商,可以用一台伺服器為多為客戶服務,也可以以每位客戶持有的網域名稱執行各自不同的 這裡利用了虛擬伺服器的功能。客戶端使用http協議訪問伺服器時,會經常採用類似www.baidu.con這樣的主機名和網域名稱 ...

web伺服器 HTTP協議基礎

1.http協議 一種規範和約定,實現客戶端和伺服器的通訊 2.http請求格式 請求行 請求頭 請求體 請求行 method request uri http version 方法 請求的資源位址 http版本 請求頭 accept 指瀏覽器或其他客戶可以接愛的mime檔案格式。servlet可以...