阿郎的技術搏客

          成長軌跡

          How to Read the Value of an HTTP Header

          How to Read the Value of an HTTP Header

          In the above sections, we have gone through several HTTP headers that are useful for user agent detection and device capabilities detection. Now one essential question remains: how to read the value of an HTTP header?

          Reading the value of an HTTP header is not difficult. Just use a server-side scripting technology to write a few lines of code. We will demonstrate how to read the value of an HTTP header using ASP, Java Servlet / JSP, Perl and PHP below.

          Retrieving HTTP Headers with ASP
          In ASP, you can use the ServerVariables collection of the Request object to retrieve the value of HTTP headers. You can choose either VBScript or JScript (JavaScript implemented by Microsoft) as the scripting language. If you use VBScript, the code for reading HTTP headers should be like this:

           ' Declaring variables
          Dim accept
          Dim user_agent
          Dim accept_charset
          Dim accept_language
          Dim x_wap_profile
          Dim profile

          accept = Request.ServerVariables("HTTP_ACCEPT")
          user_agent = Request.ServerVariables("HTTP_USER_AGENT")
          accept_charset = Request.ServerVariables("HTTP_ACCEPT_CHARSET")
          accept_language = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
          x_wap_profile = Request.ServerVariables("HTTP_X_WAP_PROFILE")
          profile = Request.ServerVariables("HTTP_PROFILE")

           As you can see above, to retrieve the value of an HTTP header in ASP, we use Request.ServerVariables("HTTP_x"), where x is the HTTP header name with all the "-" characters replaced with the "_" character. ASP has other pre-defined server environment variables that can be placed inside the parentheses of ServerVariables() but we are not going to discuss about them since they are not useful to us here.

          If you use JScript, the code for reading HTTP headers should look like this:

           


          var accept = Request.ServerVariables("HTTP_ACCEPT");
          var user_agent = Request.ServerVariables("HTTP_USER_AGENT");
          var accept_charset = Request.ServerVariables("HTTP_ACCEPT_CHARSET");
          var accept_language = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE");
          var x_wap_profile = Request.ServerVariables("HTTP_X_WAP_PROFILE");
          var profile = Request.ServerVariables("HTTP_PROFILE");

           Retrieving HTTP Headers with Java Servlet / JSP
          In Java Servlet or JSP, you can use the getHeader() method of the javax.servlet.http.HttpServletRequest object to retrieve the value of HTTP headers. Here is the code for reading HTTP headers:

           String accept = request.getHeader("accept");
          String user_agent = request.getHeader("user-agent");
          String accept_charset = request.getHeader("accept-charset");
          String accept_language = request.getHeader("accept-language");
          String x_wap_profile = request.getHeader("x-wap-profile");
          String profile = request.getHeader("profile");

           As you can see, to retrieve the value of an HTTP header whose name is x in Java Servlet or JSP, we use request.getHeader("x"), where request is an instance of the javax.servlet.http.HttpServletRequest class.

           Retrieving HTTP Headers with Perl
          In Perl, the values of HTTP headers are stored in the %ENV hash. Here is the code for retrieving HTTP headers:

           $accept = $ENV{"HTTP_ACCEPT"};
          $user_agent = $ENV{"HTTP_USER_AGENT"};
          $accept_charset = $ENV{"HTTP_ACCEPT_CHARSET"};
          $accept_language = $ENV{"HTTP_ACCEPT_LANGUAGE"};
          $x_wap_profile = $ENV{"HTTP_X_WAP_PROFILE"};
          $profile = $ENV{"HTTP_PROFILE"};

           As you can see above, to retrieve the value of an HTTP header in Perl, we use $ENV{"HTTP_x"}, where x is the HTTP header name with all the "-" characters replaced with the "_" character. Perl has other pre-defined values that can be placed inside the braces of $ENV{} but we are not going to discuss about them since they are not useful to us here.

           Retrieving HTTP Headers with PHP

          In PHP, the value of HTTP headers are stored in the $_SERVER array. Here is the code for retrieving HTTP headers:

           $accept = $_SERVER["HTTP_ACCEPT"];
          $user_agent = $_SERVER["HTTP_USER_AGENT"];
          $accept_charset = $_SERVER["HTTP_ACCEPT_CHARSET"];
          $accept_language = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
          $x_wap_profile = $_SERVER["HTTP_X_WAP_PROFILE"];
          $profile = $_SERVER["HTTP_PROFILE"];

           As you can see above, to retrieve the value of an HTTP header in PHP, we use $_SERVER["HTTP_x"], where x is the HTTP header name with all the "-" characters replaced with the "_" character. PHP has other pre-defined values that can be placed inside the square brackets of $_SERVER[] but we are not going to discuss about them since they are not useful to us here

          posted on 2007-04-30 10:34 alone 閱讀(869) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巨野县| 河津市| 山东省| 青海省| 论坛| 普格县| 潜山县| 阳山县| 富裕县| 丹阳市| 深圳市| 米易县| 井研县| 大竹县| 鲁山县| 西平县| 突泉县| 丰宁| 元朗区| 江安县| 图们市| 阿拉善盟| 武清区| 阜康市| 简阳市| 化德县| 南乐县| 普洱| 浠水县| 堆龙德庆县| 循化| 福安市| 绿春县| 保定市| 化州市| 来宾市| 班戈县| 修文县| 永福县| 黄陵县| 蓬安县|