程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2 9產品說明書在線參考地址(http)

DB2 9產品說明書在線參考地址(http)

編輯:DB2教程
   大多數請求頭並不是必需的,但Content - Length除外。對於POST請求來說Content - Length必須出現。

     下面是一些最常見的請求頭:

   Accept:浏覽器可接受的MIME類型。
   Accept - Charset:浏覽器可接受的字符集。
   Accept -
   Encoding:浏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的浏覽器返回經gzip編碼的Html頁面。
   許多情形下這可以減少5到10倍的下載時間。
   Accept - Language:浏覽器所希望的語言種類,當服務器能夠提供一種以上的語言版本時要用到。
   Authorization:授權信息,通常出現在對服務器發送的WWW - Authenticate頭的應答中。
   Connection:表示是否需要持久連接。如果Servlet看到這裡的值為“Keep -
   Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁面包含多個元素時(
   例如Applet,圖片),顯著地減少下載所需要的時間。要實現這一點,Servlet需要在應答中發送一個Content -
   Length頭,最簡單的實現方法是:先把內容寫入ByteArrayOutputStream,然後在正式寫出內容之前計算它的大小。
   Content - Length:表示請求消息正文的長度。
   Cookie:這是最重要的請求頭信息之一,參見後面《CookIE處理》一章中的討論。
   From:請求發送者的email地址,由一些特殊的Web客戶程序使用,浏覽器不會用到它。
   Host:初始URL中的主機和端口。
   If - Modified - Since:只有當所請求的內容在指定的日期之後又經過修改才返回它,否則返回304“Not ModifIEd”應答。
   Pragma:指定“no - cache”值表示服務器必須返回一個刷新後的文檔,即使它是代理服務器而且已經有了頁面的本地拷貝。
   Referer:包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面。
   User - Agent:浏覽器類型,如果Servlet返回的內容與浏覽器類型有關則該值非常有用。
   UA - Pixels,UA - Color,UA - OS,UA -
   CPU:由某些版本的IE浏覽器所發送的非標准的請求頭,表示屏幕大小、顏色深度、操作系統和CPU類型。
     有關HTTP頭完整、詳細的說明,請參見http : //www.w3.org/Protocols/的HTTP規范。

     5.2在Servlet中讀取請求頭

     在Servlet中讀取HTTP頭是非常方便的,只需要調用一下HttpServletRequest的getHeader方法即可。
   如果客戶請求中提供了指定的頭信息,getHeader返回對應的字符串;否則,返回null。部分頭信息經常要用到,它們有專用的訪問方法:
   getCookies方法返回Cookie頭的內容,經解析後存放在Cookie對象的數組中,請參見後面有關CookIE章節的討論;
   getAuthType和getRemoteUser方法分別讀取Authorization頭中的一部分內容;
   getDateHeader和getIntHeader方法讀取指定的頭,然後返回日期值或整數值。

     除了讀取指定的頭之外,利用getHeaderNames還可以得到請求中所有頭名字的一個Enumeration對象。

     最後,除了查看請求頭信息之外,我們還可以從請求主命令行獲得一些信息。getMethod方法返回請求方法,請求方法通常是GET或者POST,
   但也有可能是HEAD、PUT或者DELETE。getRequestURI方法返回URI(URI是URL的從主機和端口之後到表單數據之前的那一部分)。
   getRequestProtocol返回請求命令的第三部分,一般是“HTTP / 1.0”或者“HTTP / 1.1”。

     5.3實例:輸出所有的請求頭

     下面的Servlet實例把所有接收到的請求頭和它的值以表格的形式輸出。另外,該Servlet還會輸出主請求命令的三個部分:請求方法,URI,協議 /
   版本。

ShowRequestHeaders.Java
package hall;

import Java.io.*;
import Javax.servlet.*;
import Javax.servlet.http.*;
import Java.util.*;

public class ShowRequestHeaders
   extends HttpServlet {
  public void doGet(HttpServletRequest request,
           HttpServletResponse response) throws ServletException,
    IOException {
   response.setContentType("text/Html");
   PrintWriter out = response.getWriter();
   String title = "顯示所有請求頭";
   out.println(ServletUtilitIEs.headWithTitle(title) +
         "<BODY BGCOLOR=\"#FDF5E6\">\n" +
         "<H1 ALIGN=CENTER>" + title + "</H1>\n" +
         "<B>Request Method: </B>" +
         request.getMethod() + "<BR>\n" +
         "<B>Request URI: </B>" +
         request.getRequestURI() + "<BR>\n" +
         "<B>Request Protocol: </B>" +
         request.getProtocol() + "<BR><BR>\n" +
         "<TABLE BORDER=1 ALIGN=CENTER>\n" +
         "<TR BGCOLOR=\"#FFAD00\">\n" +
         "<TH>Header Name<TH>Header Value");
   Enumeration headerNames = request.getHeaderNames();
   while (headerNames.hasMoreElements()) {
    String headerName = (String) headerNames.nextElement();
    out.println("<TR><TD>" + headerName);
    out.println(" <TD>" + request.getHeader(headerName));
   }
   out.println("</TABLE>\n</BODY></Html>");
  }

  public void doPost(HttpServletRequest request,
           HttpServletResponse response) throws ServletException,
    IOException {
   doGet(request, response);
  }
}

當我們准備建立一個Web站點時,就必須向域名登記機構申請一個Internet域名,因此,我們通常希望了解自己准備使用的域名是否已經被注冊,這時,可以訪問NIC站點http://www.nic.Net,點擊"whois"鏈接後輸入需查詢的域名,就可以得到我們需要的結果。

WHOIS服務器為 .com、.Net 和 .org 的國際頂級域名的查詢返回全部的 whois 數據,包括網站域名注冊人、管理合約、聯系方式(電話、電子郵件、地址)、帳單聯絡、技術支持和域名服務器信息,對於用戶了解一個網站的基本情況很有幫助。在很多域名注冊服務商的網站中,通常都有whois(域名查詢)的高級服務,但個人網站因為不具備域名注冊服務商的資格和數據,所以在一般條件下無法提供whois服務。

其實,利用XML(標准化越來越近了)HTTP協議,我們每個人都可以在自己的個人網站中提供域名詳細情況查詢(WHOIS)服務,本文介紹了如何使用ASP結合XML(標准化越來越近了)http編程來實現這個功能。

一、原理

原理非常簡單,域名的查詢主要是基於RFC 954提供的WHOIS協議。在實現過程中,我們通過自己的WEB服務器訪問NIC站點的WHOIS數據庫服務器,從WHOIS數據庫中查詢我們所需要的內容,然後通過ASP組合成網頁回送給客戶端。

同時,我們使用XML(標准化越來越近了)Http協議實現客戶端網頁無刷新效果以及向服務端提出檢索WHOIS數據的要求。

具體流程為:客戶端通過XML(標准化越來越近了)http提出域名查詢要求-->WEB服務器中的ASP偵聽頁接受請求後使用XML(標准化越來越近了)http向WHOIS服務器發送檢索命令-->WHOIS數據庫執行查詢操作,返回結果給我們自己的WEB服務器(html形式)-->WEB服務器接收到內容後,立即將結果傳送給客戶端->客戶端浏覽器使用vbscript過濾掉Html多余部分,挑選出whois數據顯示出來。

二、ASP XML(標准化越來越近了)Http編程簡述

1、客戶端Html頁面:



<script language="vbscript">

 Sub submit1_onmouseup '當點擊“查詢”按鈕時觸發;

Dim objXML(標准化越來越近了), objXSL, objFSO,strFile, strFileName, strXSL,strURL,TheForm

Set TheForm = Document.Wordfind

window.status="正在檢索數據···"

strURL="dns.ASP"

Set objxml(標准化越來越近了) = CreateObject("Microsoft.xml(標准化越來越近了)HTTP") '創建MS的XML(標准化越來越近了)HTTP組件;

stra = "submit=submit&fqdn="&TheForm.Words.value

objXML(標准化越來越近了).Open "post",strURL,false '采用Post提交方式;

objXML(標准化越來越近了).setrequestheader "content-length",len(stra)

objXML(標准化越來越近了).setrequestheader "content-type","application/x-www-form-urlencoded"

objXML(標准化越來越近了).send stra ' 發送信息

xml(標准化越來越近了)Get = objXML(標准化越來越近了).responseText '稍等片刻後,得到服務器端傳回來的結果;

if instr(1,XML(標准化越來越近了)Get,"This is not a valid .com .Net .org .info or .biz domain  name",1)<1 and len(trim(XML(標准化越來越近了)Get))>100 then

 if instr(1,XML(標准化越來越近了)Get,"This domain is available",1)<1 then

if instr(1,XML(標准化越來越近了)Get,"Registrant:",1) then

strFind1 =instr(1,XML(標准化越來越近了)Get,"Registrant:",1)

else

strFind1 = instr(1,XML(標准化越來越近了)Get,"<pre><FONT face=""Verdana, Arial",1)+65

strFind2 = instr(1,XML(標准化越來越近了)Get,"</FONT></pre>",1)

 strFind4=strFind2-strFind1

 sHtml = mid(XML(標准化越來越近了)Get,strFind1,strFind4)

 TheForm.comments.value="查詢結果:"+chr(13)+chr(10)+sHtml

 window.status="查詢結果:該域名已被占用"

 else

TheForm.comments.value="恭喜你,此域名可用!"

window.status="查詢結果:該域名仍然處於可用狀態!"

 end if

else

 TheForm.comments.value= "無效的國際頂級域名!請輸入以(.com .Net .org .info or .biz)結尾的國際域名, 例如sun.com"

 window.status="無效的國際頂級域名!請輸入以(.com .Net .org .info or .biz)結尾的國際域名, 例如CCTV.com"

end if

Set objXML(標准化越來越近了) = Nothing

 end sub

</script>

<Html><head><title>XML(標准化越來越近了)HTTP之域名查詢篇</title></head>

<body bgColor=#cccca3>

<form method="post" name=Wordfind >

請輸入域名名稱:<input type="text" value="cctv.com" name="Words" size="69">

<input type="submit" value="查詢" id=Submit1 name=Submit1>

<TEXTAREA name=comments readonly rows=10 cols=76></TEXTAREA>

</form></body></Html>


2、服務器端ASP程序:



<%dim xml(標准化越來越近了)Get,objXML(標准化越來越近了), objXSL, objFSO,strFile, strFileName, strXSL,strURL

 XML(標准化越來越近了)Get=""

 if len(trim(Request.form("fqdn"))) > 1 then

strURL="http://www.domainbank.Net/whoisresults_gen.cfm?show=1"

'WhoIS服務器的地址

Set objxml(標准化越來越近了) = CreateObject("Microsoft.xml(標准化越來越近了)HTTP") '創建MS的XML(標准化越來越近了)HTTP組件

stra = "submit=submit&fqdn="&trim(Request.form("fqdn"))

objXML(標准化越來越近了).Open "post",strURL,false

objXML(標准化越來越近了).setrequestheader "content-length",len(stra)

objXML(標准化越來越近了).setrequestheader "content-type","application/x-www-form-urlencoded"

objXML(標准化越來越近了).send stra ' 發送信息到WhoIs數據庫服務器;

xml(標准化越來越近了)Get = objXML(標准化越來越近了).responseText ' 取得域名服務器返回的信息

Set objXML(標准化越來越近了) = Nothing

 end if

 response.write XML(標准化越來越近了)Get '返回結果給客戶端

%>


在上述過程中,可以發現我們自己的WEB服務器中的ASP程序其實只起到一個中間傳遞的作用,在實際應用中,也可以省去這個中間層,使用vbscript通過XML(標准化越來越近了)http直接向WHOIS數據庫發送和接收數據。不過這樣的話,可能會因為IE中“通過(其它)域訪問數據資源”被禁用(默認)而引起權限不夠導致無法執行,所以該省去ASP中間層的方法並不太通用。

本程序在基於Windows2000平台的IIS5.0和IE6.0上運行通過。實際使用過程中,可以把上述代碼拷貝到自己網頁中,經過簡單的頁面編輯,就可在自己的網頁中增加在頁面無刷新情況下的域名查詢功能了,初看上去,還真的有點象專業的域名注冊服務商網站提供的服務了。

    ·用HTTP代理下載文件詳例 [VC]
    ·HTTP標准的請求和響應
    ·HTTP 協議基礎,http頭信息詳解
    ·SMTP、POP3、NNTP、FTP、HTTP 的服務
    ·限制用戶對於路由器的http訪問
    ·HTTP請求頭概述
    ·使用XML(標准化越來越近了) http為網站增加域名查詢功能
    ·IE7下Https網站訪問故障巧排除
    ·一個小技巧,在http和https之間轉化
    ·解決XML(標准化越來越近了) HTTP提交過時返回是亂碼的問


  Hypertext Transfer Protocol 超文本傳輸協議,HTTP是用來在WWW上交換文件(文本,圖形,聲音,動畫等)的規則集。相對於TCP/IP協議族(它是網上交換信息的基礎),HTTP是應用協議。

    ·用HTTP代理下載文件詳例 [VC]
    ·HTTP標准的請求和響應
    ·SMTP、POP3、NNTP、FTP、HTTP 的服務
    ·限制用戶對於路由器的http訪問
    ·HTTP 協議基礎,http頭信息詳解
    ·HTTP請求頭概述
    ·使用XML(標准化越來越近了) http為網站增加域名查詢功能
    ·HTTP
    ·一個小技巧,在http和https之間轉化
    ·解決XML(標准化越來越近了) HTTP提交過時返回是亂碼的問

   IE7浏覽器是伴隨著Vista操作系統而誕生的,不過微軟也發布了針對XP系統的IE7浏覽器版本。不過不管是Vista系統還是XP系統下的IE7,由於他的安全防范意識有很大提高,對於非法站點和安全加密站點的過濾都比較苛刻,所以在IE7下訪問https這種通過SSL協議加密的網站都會出現故障。今天我們就來一步步解決此問題。

   一、XP系統下IE7訪問https站點故障排除功略:
   默認情況我們在XP系統下通過XP版本的IE7浏覽器訪問https加密的站點都會出現“此網站的安全證書有問題,該網站提供的安全證書不是由受信任的證書辦法機構頒發的,安全證書問題可能顯示試圖欺騙您或截獲您向服務器發送的數據”,我們必須再次點“繼續浏覽此網站(不推薦)”才能查看頁面信息。(如圖1)
IE7下Https網站訪問故障巧排除(圖一)   那麼如何來解決這個問題呢?畢竟每次訪問Https站點都需要重復點“繼續浏覽此網站(不推薦)”,在操作上帶來很大的麻煩。下面我們就通過安裝證書步驟來解決此問題。
   第一步:當我們用IE7浏覽Https站點後會在地址欄右邊出現一個紅色的“證書錯誤”的提示,我們點該紅色按鈕,然後選擇“查看證書”。(如圖2) IE7下Https網站訪問故障巧排除(圖二)
   第二步:在打開的“查看證書”窗口中的“常規”標簽中點右下角的“安裝證書”按鈕。(如圖3)
   第三步:出現“證書導入向導”後點“下一步”按鈕繼續。 IE7下Https網站訪問故障巧排除(圖三)
   第四步:選擇證書存儲的系統區域,通過“浏覽”按鈕設置將證書保存為“受信任的根證書頒發機構”。(如圖4) IE7下Https網站訪問故障巧排除(圖四)
   第五步:之後在安全警告窗口中選擇“是”按鈕來安裝該證書。
   第六步:設置完畢後我們再次訪問該https站點就不會出現任何問題,也不會再出現“此網站的安全證書有問題,該網站提供的安全證書不是由受信任的證書辦法機構頒發的,安全證書問題可能顯示試圖欺騙您或截獲您向服務器發送的數據”的錯誤提示了。
  在做電子商務站點的時候,經常要求浏覽器在https和http之間轉化
下面我給出相應的代碼:

讓一個ASP頁面以https開始,請在該ASP頁面頂部添加如下代碼:

<%
Response.Buffer = True
If (Request.ServerVariables("HTTPS") = "off") Then
Dim xredir__, xqstr__

xredir__ = "https://" & Request.ServerVariables("SERVER_NAME") & _
Request.ServerVariables("SCRIPT_NAME")
xqstr__ = Request.ServerVariables("QUERY_STRING")

if xqstr__ <> "" Then xredir__ = xredir__ & "?" & xqstr__

Response.redirect xredir__
End if
%>

相反的,強迫以Http開始
請添加如下代碼

<%
Response.Buffer = True
If (Request.ServerVariables("HTTPS") = "on") Then
Dim xredir__, xqstr__

xredir__ = "http://" & Request.ServerVariables("SERVER_NAME") & _
Request.ServerVariables("SCRIPT_NAME")
xqstr__ = Request.ServerVariables("QUERY_STRING")

if xqstr__ <> "" Then xredir__ = xredir__ & "?" & xqstr__

Response.redirect xredir__
End if
%>

希望能對你有所幫助

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved