Servlet学习笔记(三)------ 读取头部信息

1.使用的协议是HTTP。先要了解HTTP头部信息有什么?作用

是什么?


每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息:

  • Accept:浏览器能够处理的内容类型
  • Accept-Charset:浏览器能够显示的字符集
  • Accept-Encoding:浏览器能够处理的压缩编码
  • Accept-Language:浏览器当前设置的语言
  • Connection:浏览器与服务器之间连接的类型
  • Cookie:当前页面设置的任何Cookie
  • Host:发出请求的页面所在的域
  • Referer:发出请求的页面的URL
  • User-Agent:浏览器的用户代理字符串

例如:chrome下的请求头信息:

Servlet学习笔记(三)------ 读取头部信息

虽然不同浏览器实际发送的头部信息会有所不同,但以上列出的基本上是浏览器都会发送的,用setRequestHeader()方法也可以设置请求头信息,该函数接受两个参数:头部字段的名称和头部字段的值。要成功发送请求头部信息,需在调用open方法之后且调用send方法之前调用。

 

HTTP响应头部信息:

  • Date:表示消息发送的时间,时间的描述格式由rfc822定义
  • server:服务器名字。
  • Connection:浏览器与服务器之间连接的类型
  • content-type:表示后面的文档属于什么MIME类型
  • Cache-Control:控制HTTP缓存

以上是基本常见的信息

Servlet学习笔记(三)------ 读取头部信息

 以上Expires 头部字段提供一个日期和时间,响应在该日期和时间后被认为失效


2.如何读取HTTP的请求头信息?


思路:HTTP请求,都是由name和value组成的。常用的方式

是:通过枚举方法获取到所有的names,然后通过names或者

全部的values。然后遍历输出即可。这样可以获得全部的头部信

息。


常用的几个一般函数:

-getHeader()(前提是知道name,才可以知道values)

-getHeaders()

-getHeaderNames()(提取所有的names)



2.1创建一个HeaderServlet的类,继承HttpServlet。


代码如下:

Servlet学习笔记(三)------ 读取头部信息

2.2几个函数的作用:

      ---hasMoreElements()具体解释;

Servlet学习笔记(三)------ 读取头部信息

      --nextElement()具体解释

Servlet学习笔记(三)------ 读取头部信息


2.3执行的输出结果如下:

Servlet学习笔记(三)------ 读取头部信息


2.4如果要执行具体的任务,比如要根据user-agent判断是什么浏览器,

那么就可以只对该参数进行提取和处理

Servlet学习笔记(三)------ 读取头部信息


结果显示:

Servlet学习笔记(三)------ 读取头部信息


这是我在猎豹浏览器访问URL的结果:

Servlet学习笔记(三)------ 读取头部信息

注意:但是有个问题,就是我的这个电脑就在我的HeaderServlet中写了一次,但是为什么执行了输出了两次这个结果?

有待解决。。。。


2.5解释下什么的枚举。以及基本的应用。

该文章转载:https://blog.csdn.net/qq_27093465/article/details/52180865

但是有个问题是最后的实例的,函数useEnumInjava以及F5怎么输出的??

参考:https://www.cnblogs.com/hxc555/p/6506154.html