我們有的朋友發現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可以...