解讀web伺服器的http頭

2021-09-05 21:00:46 字數 1483 閱讀 6418

我們有的朋友發現iis伺服器的**屬性中有乙個特殊的頁面「http頭」(如下),並且對此非常不解。

好吧,我來解釋一下:這個頭其實就是說伺服器端傳送給瀏覽器的一些特殊訊息。(有時候是一些附加訊息),瀏覽器可能可以根據這些訊息進行相應的處理。

首先,我們來看看如果僅僅是一些附加訊息,例如我上面新增到乙個author的訊息,值為chenxizhang.

因為author這個資訊,瀏覽器並不認識,所以在頁面上是沒有任何的顯示的。但如果是我們自己的程式,通過程式設計的方式去請求某個頁面,那麼就可以讀取這個header,然後可能據此進行一些處理。

///

/// 同步讀取網路資源,獲取響應

///

///

static void getresponse()

,value:", response.headers.keys[i], response.headers[i]);

} streamreader reader = new streamreader(response.getresponsestream());

console.writeline("響應正文:");

console.writeline(reader.readtoend());

那麼,**如果執行起來之後,得到的效果就如下

這是通過**讀取response的headers的做法。假如,我們需要在提交request的時候,也新增headers,是否可以呢?

request.headers.add("test", "chenxizhang");//這是新增請求中的頭部訊息,與響應的那個是一樣的

然後,我們在伺服器頁面中是否可以解析傳過來的頭部訊息呢?

for (int i = 0; i < request.headers.count; i++)

,value

", request.headers.keys[i], request.headers[i]));

} 同時,我們在伺服器頁面中是否還可以動態地新增response的header呢?

response.addheader("test", "chenxizhang");

了解了上面的知識之後,你可能還有乙個疑惑:除了傳遞這些附加資訊之外,頭部訊息是否還有其他的用途?例如它能不能指示瀏覽器做某個操作?

public static void toexcel(control control,string filename)

此外,頭部訊息還可以用來解析身份驗證和授權。

【附錄】非同步呼叫httpwebrequest的方法

///

/// 非同步讀取網路資源,獲取響應

static void getresponseasync()

servlet 伺服器HTTP請求頭說明

accept 用於告訴伺服器,客戶機支援的資料型別。accept charset 用於告訴伺服器,客戶機採用的編碼。accept language 客戶機的語言環境。host 客戶機通過該頭告訴伺服器,想訪問的主機名。if modified since 客戶機通過這個頭告訴伺服器,資源的快取時間。如...

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可以...