| 請求頭 | 用途 |
|---|---|
| Accept | 瀏覽器可接受的 MIME 類型 |
| Accept-Charset | 可接受字符集 |
| Accept-Encoding | 支持的編碼(如 gzip),可大幅減少下載時間 |
| Accept-Language | 期望語言,多語言站點用於內容協商 |
| Authorization | 認證憑據,回應 WWW-Authenticate |
| Connection | Keep-Alive 持久連接,配合 Content-Length 減少多元素頁面下載耗時 |
| Content-Length | POST 請求體長度,POST 必須 |
| Cookie | 攜帶會話標識,詳見 Cookie 處理章節 |
| Host | 初始 URL 的主機與端口 |
| If-Modified-Since | 條件請求,未修改返回 304 |
| Pragma: no-cache | 強制獲取最新文檔 |
| Referer | 來源頁面 URL |
| User-Agent | 瀏覽器類型,用於差異化輸出 |
getHeader(String name):獲取指定頭,不存在返回 nullgetHeaders(String name):獲取同名頭的所有值(Enumeration)getHeaderNames():獲取所有頭名稱getCookies()、getAuthType()、getRemoteUser()、getDateHeader()、getIntHeader()getMethod()、getRequestURI()、getProtocol()public class ShowRequestHeaders extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
String title = "顯示所有請求頭";
out.println(ServletUtilities.headWithTitle(title) +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=CENTER>" + title + "</H1>\n" +
"<B>Request Method: </B>" + req.getMethod() + "<BR>\n" +
"<B>Request URI: </B>" + req.getRequestURI() + "<BR>\n" +
"<B>Request Protocol: </B>" + req.getProtocol() + "<BR><BR>\n" +
"<TABLE BORDER=1 ALIGN=CENTER>\n" +
"<TR BGCOLOR=\"#FFAD00\"><TH>Header Name<TH>Header Value");
Enumeration e = req.getHeaderNames();
while (e.hasMoreElements()) {
String h = (String) e.nextElement();
out.println("<TR><TD>" + h + "<TD>" + req.getHeader(h));
}
out.println("</TABLE></BODY></HTML>");
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { doGet(req, resp); }
}
www.domainbank.net WHOIS 服務Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.Open "post", "dns.asp", False
objXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXML.setRequestHeader "Content-Length", Len(postData)
objXML.send postData
xmlGet = objXML.responseText
' 後續文本解析判斷域名狀態...
<%
Set objXML = CreateObject("Microsoft.XMLHTTP")
objXML.Open "post", "https://www.domainbank.net/whoisresults_gen.cfm?show=1", False
objXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXML.setRequestHeader "Content-Length", Len(postData)
objXML.send postData
Response.Write objXML.responseText
%>
直接在客戶端 XMLHTTP 訪問異域 WHOIS 服務會觸發 IE「跨域訪問」安全限制(默認禁用),中間層繞過瀏覽器同源策略,通用性更強。
' 強制 HTTPS
If Request.ServerVariables("HTTPS") = "off" Then
xredir = "https://" & Request.ServerVariables("SERVER_NAME") & _
Request.ServerVariables("SCRIPT_NAME")
If Request.ServerVariables("QUERY_STRING") <> "" Then
xredir = xredir & "?" & Request.ServerVariables("QUERY_STRING")
End If
Response.Redirect xredir
End If
' 強制 HTTP(邏輯相反,判斷 HTTPS = "on")
主機 pc10.tcpip.cxm (192.168.1.10) 配置 BIND 9:
/etc/hosts:本地主機名解析/etc/host.conf:order hosts, bind、multi on/etc/resolv.conf:search tcpip.cxm、nameserver 192.168.1.10/etc/named.conf:定義 zone . (hint)、0.0.127.in-addr.arpa、1.168.192.in-addr.arpa (反向)、tcpip.cxm (正向)/var/named/named.192.168.1、/var/named/named.tcpip.cxm 包含 SOA、NS、A、PTR、CNAME 記錄service named restart 重啟,nslookup 驗證