3. 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.
3.1. 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");
3.2. 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.
3.3. 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.
3.4. 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.
Feedback Form (ExpandCollapse)
|
|