请简要描述客户端发送的http request header都包含哪些内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请简要描述客户端发送的http request header都包含哪些内容相关的知识,希望对你有一定的参考价值。
先看Request 消息的结构, Request 消息分为3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个空行, 结构如下图
第一行中的Method表示请求方法,比如"POST","GET", Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号
当使用的是"GET" 方法的时候, body是为空的
参考技术A 读取请求头,只需要调用HttpServletRequest的getHeader方法几科,如果程序编写人员指定了某一个头信息的话,getHeader返回对应的字符串,否在就是返回null了。注意:请求头是不区分大小写的。例如,getHeader("connection")跟getHeader("Connection")是一样的。部分头信息经常用到,故在这里记录下来,日后好翻阅~getCookiesgetCookies方法返回cookies头的内容(关于Cookies是什么,这个值得百度),经解析后存放在cookie对象数组中。getAuthType和getRemoteUsergetAuthType和getRemoteUser方法分别读取Authorization头中的一部分内容。当用户访问受密码保护的网页这个头用来做身份验证。getContentTypeLength返回Content-Length头(整形)。getContentType返回Content-Type头(字符串)。getDateHeader和getIntHeadergetDateHeader和getIntHeader方法读取指定的头,然后分别返回日期值或整数值。getHeaderNames这个方法返回一个Enummeration对象,有点类似request对象中的getParmeterNames方法。getMethod返回请求方法,通常是get啊post之类的。getRequestURI注意这里不是URL,这个方法返回的是从主机和端口之后到表单数据之前的那部分。getQuryString这个方法返回表单请求的参数。例如,?query=string。User-Agent这个方法也挺实用的,返回浏览器类型。类似的还有UA-Pixels,UA-Color,UA-OS和UA-CPU。 参考技术B 谁知道呢,谁有这功夫Servlet中的HttpServletRequest接口
参考技术A Web服务器收到客户端的http请求,会针对每一次请求,创建一个用于代表请求的HttpServletRequest类型的request对象,并将"HTTP请求协议"的完整内容封装到该对象中。开发者获拿到request对象后就可以获取客户端发送给服务器的请求数据了。当客户端浏览器向服务器发送请求后,服务器会根据HTTP请求协议的格式对请求进行解析。同时,服务器会创建 HttpServletRequest类型的对象,即请求对象,然后将解析出的数据封装到该请求对象中。此时HttpServletRequest实例就创建并初始化完毕了,也就是说,请求对象是由服务器创建。当服务器向客户端发送响应结束后,HttpServletRequest 实例对象被服务器销毁,HttpServletRequest对象的生命周期很短暂。
一次请求对应一个请求对象, 另外一次请求对应另外一个请求对象,即每次请求都会创建一个HttpServletRequest类型的对象,这些对象之间没有关系。
Map getParameterMap()
获取包含所有请求参数及值的 Map 对象。需要注意,该 Map 的 value 为 String[],即一个参数所对应的值为一个数组。说明一个参数可以对应多个值。
Enumeration getParameterNames()
获取请求参数 Map 的所有 key,即获取所有请求参数名。
String[] getParameterValues(String name)
根据指定的请求参数名称,获取其对应的所有值。这个方法一般用于获取复选框(checkbox)数据。
String getParameter(String name)
根据指定的请求参数名称,获取其对应的值。若该参数名称对应的是多个值,则该方法获取到的是第一个值。这个方法是最常用的方法。
getRequestURL 方法返回客户端发出请求时的完整URL。
getRequestURI 方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getRemoteAddr 方法返回发出请求的客户机的IP地址
getRemoteHost 方法返回发出请求的客户机的完整主机名
getRemotePort 方法返回客户机所使用的网络端口号
getLocalAddr 方法返回WEB服务器的IP地址。
getLocalName 方法返回WEB服务器的主机名
getMethod 得到客户机请求方式
创建一个html里面写一些表单信息:
创建一个servlet来接收用户提交的数据:
以上是关于请简要描述客户端发送的http request header都包含哪些内容的主要内容,如果未能解决你的问题,请参考以下文章