精华内容
下载资源
问答
  • servlet响应头与filter响应头之间的关系

    通过在MyEclipse上进行简单测试来得到所需结论,问题发现:

    我们知道网页中出现乱码一般是由于服务器默认的编码方式是iso8859-1,所以只需要设置响应头Content-Type的值为text/html;charset=utf-8就可以告诉浏览器发送给它的内容是文本并制定编码方式。但是这行代码可以写在servlet和过滤器两个位置,所以到底哪个位置是最终决定这个响应头的取值,成为我通过理论推导无法得出结论的一个问题。所以我做了如下实验,并得到了想要的结果。


    设计方案:

     通过jsp页面访问servlet
     服务器做出响应发回jsp页面
     这个过程被指定过滤器过滤一遍
     发送内容为含有中文字符的纯文本
     所以有乱码解决方案
     在servlet和filter中同时设置
     看哪一个会生效
    

    代码块

    servlet中的代码如下:

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("开始访问servlet:");
        //虽然执行在后,然而设置并没有什么用...
        response.setContentType("text/html;charset=iso8859-1");
        System.out.println("设置响应头,编码集为iso8859-1");
        //设置其他响应头完全没有问题
        response.setHeader("refresh", "5;url=http://www.baidu.com");
        response.getWriter().println("<br/>");
        response.getWriter().println("这是servlet输出的一段话:over");
        System.out.println("servlet结束");
    }

    filter的代码如下:

    @Override
        public void destroy() {
            System.out.println("过滤器被销毁了");
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException 
        {
            //进入过滤器
            System.out.println("进入过滤器:");
            //解决输出乱码问题,虽然执行动作在前,但是响应头并不会被servlet中相同的值覆盖
            response.setContentType("text/html;charset=utf-8");
            System.out.println("设置响应头,编码集为utf-8");
            //输出一段话
            response.getWriter().println("这是过滤器输出的一段话:over");
            //放行
            chain.doFilter(request, response);
            //过滤后执行的语句
            System.out.println("过滤器放行之后");
        }
    
        @Override
        public void init(FilterConfig filter) throws ServletException 
        {
            System.out.println("过滤器被创建了");
        }

    输出结果:

    控制台:
        进入过滤器:
        设置响应头,编码集为utf-8
        开始访问servlet:
        设置响应头,编码集为iso8859-1
        servlet结束
        过滤器放行之后
    
    页面:
        这是过滤器输出的一段话:over
        这是servlet输出的一段话:over
    
        并在5秒后成功跳转到百度

    实验结论:

    servlet响应头与filter响应头之间的关系

    1.执行顺序:
        页面通过超链接或者src访问服务器资源->
        过滤器设置响应头->
        过滤器放行->
        进入servlet->
        servlet跳转回jsp页面->
        servlet结束->
        一次请求响应(包含一些不属于HTTP内容的工作)完成->
        服务器等待下一次请求...
    
    2.设置优先级:
        过滤器和servlet都具有设置响应头的功能
        但如果设置了相同的响应头,在同一次请求响应过程中
        过滤器设置生效,忽略servlet设置的相同响应头
        servlet设置的其他不重复响应头不受约束
    
    展开全文
  • HTTP响应细节——常用响应头  HTTP响应中的常用响应头(消息头)  Location: 服务器通过这个头,来告诉浏览器跳到哪里  Server:服务器通过这个头,告诉浏览器服务器的型号  Content-Encoding:服务器通过这个头,...

    HTTP响应细节——常用响应头
      HTTP响应中的常用响应头(消息头)
      Location: 服务器通过这个头,来告诉浏览器跳到哪里
      Server:服务器通过这个头,告诉浏览器服务器的型号
      Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
      Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
      Content-Language: 服务器通过这个头,告诉浏览器语言环境
      Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
      Refresh:服务器通过这个头,告诉浏览器定时刷新
      Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
      Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
      Expires: -1 控制浏览器不要缓存
      Cache-Control: no-cache
      Pragma: no-cache

    展开全文
  • HTTPServletResponse设置响应行和响应头

    千次阅读 2019-01-03 21:18:21
    设置响应行 &nbsp; &nbsp; &nbsp; &nbsp; 响应行一般需要设置状态码,可以使用... 响应头有两类设置方法,一类是addxxx()方法,另一类是setxxx()方法,addxxx()方法会添加属性,不会覆盖原来的属性...

    设置响应行

            响应行一般需要设置状态码,可以使用setStatus()方法

    	//设置状态码
    	response.setStatus(302);
    

    设置响应头

            响应头有两类设置方法,一类是addxxx()方法,另一类是setxxx()方法,addxxx()方法会添加属性,不会覆盖原来的属性。setxxx()会覆盖掉原来的属性。

    1. addxxx()方法有三种:
    	response.addHeader(String name;String value);
    	response.addIntHeader(String name;int value);
    	response.addDateHeader(String name;long date);
    
    1. setxxx() 方法有三种:
    	response.setHeader(String name;String value);
    	response.setIntHeader(String name;int value);
    	response.setDateHeader(String name;long date);
    
    展开全文
  • 常用的HTTP请求头与响应头

    万次阅读 多人点赞 2018-02-07 17:04:47
    常用的HTTP请求头与响应头 HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的...

    常用的HTTP请求头与响应头

    HTTP消息头是指,在超文本传输协议( Hypertext Transfer Protocol ,HTTP)的请求和响应消息中,协议头部分的那些组件。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。

    1. 关于HTTP消息头
    2. 常用的HTTP请求头
    3. 常用的HTTP响应头

     

    1. 关于HTTP消息头

    HTTP消息头是在,客户端请求(Request)或服务器响应(Response)时传递的,位请求或响应的第一行,HTTP消息体(请求或响应的内容)是其后传输。HTTP消息头,以明文的字符串格式传送,是以冒号分隔的键/值对,如:Accept-Charset: utf-8,每一个消息头最后以回车符(CR)和换行符(LF)结尾。HTTP消息头结束后,会用一个空白的字段来标识,这样就会出现两个连续的CR-LF

    HTTP消息头由IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)来整理和维护。其标准最早来源于RFC 4229。IANA将其整理到了消息头文档,文档中还包括了一些新提出的信息头

    HTTP消息头支持自定义, 自定义的专用消息头一般会添加'X-'前缀。

     

    2. 常用的HTTP请求头

    协议头 说明 示例 状态
    Accept 可接受的响应内容类型(Content-Types)。 Accept: text/plain 固定
    Accept-Charset 可接受的字符集 Accept-Charset: utf-8 固定
    Accept-Encoding 可接受的响应内容的编码方式。 Accept-Encoding: gzip, deflate 固定
    Accept-Language 可接受的响应内容语言列表。 Accept-Language: en-US 固定
    Accept-Datetime 可接受的按照时间来表示的响应内容版本 Accept-Datetime: Sat, 26 Dec 2015 17:30:00 GMT 临时
    Authorization 用于表示HTTP协议中需要认证资源的认证信息 Authorization: Basic OSdjJGRpbjpvcGVuIANlc2SdDE== 固定
    Cache-Control 用来指定当前的请求/回复中的,是否使用缓存机制。 Cache-Control: no-cache 固定
    Connection 客户端(浏览器)想要优先使用的连接类型 Connection: keep-alive

    Connection: Upgrade

    固定
    Cookie 由之前服务器通过Set-Cookie(见下文)设置的一个HTTP协议Cookie Cookie: $Version=1; Skin=new; 固定:标准
    Content-Length 以8进制表示的请求体的长度 Content-Length: 348 固定
    Content-MD5 请求体的内容的二进制 MD5 散列值(数字签名),以 Base64 编码的结果 Content-MD5: oD8dH2sgSW50ZWdyaIEd9D== 废弃
    Content-Type 请求体的MIME类型 (用于POST和PUT请求中) Content-Type: application/x-www-form-urlencoded 固定
    Date 发送该消息的日期和时间(以RFC 7231中定义的"HTTP日期"格式来发送) Date: Dec, 26 Dec 2015 17:30:00 GMT 固定
    Expect 表示客户端要求服务器做出特定的行为 Expect: 100-continue 固定
    From 发起此请求的用户的邮件地址 From: user@itbilu.com 固定
    Host 表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。 Host: www.itbilu.com:80

    Host: www.itbilu.com

    固定
    If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要用于像 PUT 这样的方法中,仅当从用户上次更新某个资源后,该资源未被修改的情况下,才更新该资源。 If-Match: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
    If-Modified-Since 允许在对应的资源未被修改的情况下返回304未修改 If-Modified-Since: Dec, 26 Dec 2015 17:30:00 GMT 固定
    If-None-Match 允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考 超文本传输协议 的实体标记 If-None-Match: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
    If-Range 如果该实体未被修改过,则向返回所缺少的那一个或多个部分。否则,返回整个新的实体 If-Range: "9jd00cdj34pss9ejqiw39d82f20d0ikd" 固定
    If-Unmodified-Since 仅当该实体自某个特定时间以来未被修改的情况下,才发送回应。 If-Unmodified-Since: Dec, 26 Dec 2015 17:30:00 GMT 固定
    Max-Forwards 限制该消息可被代理及网关转发的次数。 Max-Forwards: 10 固定
    Origin 发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin的消息头,表示访问控制所允许的来源)。 Origin: http://www.itbilu.com 固定: 标准
    Pragma 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生。 Pragma: no-cache 固定
    Proxy-Authorization 用于向代理进行认证的认证信息。 Proxy-Authorization: Basic IOoDZRgDOi0vcGVuIHNlNidJi2== 固定
    Range 表示请求某个实体的一部分,字节偏移以0开始。 Range: bytes=500-999 固定
    Referer 表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer其实是Referrer这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer了。 Referer: http://itbilu.com/nodejs 固定
    TE 浏览器预期接受的传输时的编码方式:可使用回应协议头Transfer-Encoding中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0的块之后还接收到一些额外的字段。 TE: trailers,deflate 固定
    User-Agent 浏览器的身份标识字符串 User-Agent: Mozilla/…… 固定
    Upgrade 要求服务器升级到一个高版本协议。 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 固定
    Via 告诉服务器,这个请求是由哪些代理发出的。 Via: 1.0 fred, 1.1 itbilu.com.com (Apache/1.1) 固定
    Warning 一个一般性的警告,表示在实体内容体中可能存在错误。 Warning: 199 Miscellaneous warning 固定

     

    3. 常用的HTTP响应头

    响应头 说明 示例 状态
    Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时
    Accept-Patch 指定服务器所支持的文档补丁格式 Accept-Patch: text/example;charset=utf-8 固定
    Accept-Ranges 服务器所支持的内容范围 Accept-Ranges: bytes 固定
    Age 响应对象在代理缓存中存在的时间,以秒为单位 Age: 12 固定
    Allow 对于特定资源的有效动作; Allow: GET, HEAD 固定
    Cache-Control 通知从服务器到客户端内的所有缓存机制,表示它们是否可以缓存这个对象及缓存有效时间。其单位为秒 Cache-Control: max-age=3600 固定
    Connection 针对该连接所预期的选项 Connection: close 固定
    Content-Disposition 对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。 Content-Disposition: attachment; filename="fname.ext" 固定
    Content-Encoding 响应资源所使用的编码类型。 Content-Encoding: gzip 固定
    Content-Language 响就内容所使用的语言 Content-Language: zh-cn 固定
    Content-Length 响应消息体的长度,用8进制字节表示 Content-Length: 348 固定
    Content-Location 所返回的数据的一个候选位置 Content-Location: /index.htm 固定
    Content-MD5 响应内容的二进制 MD5 散列值,以 Base64 方式编码 Content-MD5: IDK0iSsgSW50ZWd0DiJUi== 已淘汰
    Content-Range 如果是响应部分消息,表示属于完整消息的哪个部分 Content-Range: bytes 21010-47021/47022 固定
    Content-Type 当前内容的MIME类型 Content-Type: text/html; charset=utf-8 固定
    Date 此条消息被发送时的日期和时间(以RFC 7231中定义的"HTTP日期"格式来表示) Date: Tue, 15 Nov 1994 08:12:31 GMT 固定
    ETag 对于某个资源的某个特定版本的一个标识符,通常是一个 消息散列 ETag: "737060cd8c284d8af7ad3082f209582d" 固定
    Expires 指定一个日期/时间,超过该时间则认为此回应已经过期 Expires: Thu, 01 Dec 1994 16:00:00 GMT 固定: 标准
    Last-Modified 所请求的对象的最后修改日期(按照 RFC 7231 中定义的“超文本传输协议日期”格式来表示) Last-Modified: Dec, 26 Dec 2015 17:30:00 GMT 固定
    Link 用来表示与另一个资源之间的类型关系,此类型关系是在RFC 5988中定义 Link: ; rel="alternate" 固定
    Location 用于在进行重定向,或在创建了某个新资源时使用。 Location: http://www.itbilu.com/nodejs 固定
    P3P P3P策略相关设置 P3P: CP="This is not a P3P policy! 固定
    Pragma 与具体的实现相关,这些响应头可能在请求/回应链中的不同时候产生不同的效果 Pragma: no-cache 固定
    Proxy-Authenticate 要求在访问代理时提供身份认证信息。 Proxy-Authenticate: Basic 固定
    Public-Key-Pins 用于防止中间攻击,声明网站认证中传输层安全协议的证书散列值 Public-Key-Pins: max-age=2592000; pin-sha256="……"; 固定
    Refresh 用于重定向,或者当一个新的资源被创建时。默认会在5秒后刷新重定向。 Refresh: 5; url=http://itbilu.com  
    Retry-After 如果某个实体临时不可用,那么此协议头用于告知客户端稍后重试。其值可以是一个特定的时间段(以秒为单位)或一个超文本传输协议日期。
    • 示例1:Retry-After: 120
    • 示例2: Retry-After: Dec, 26 Dec 2015 17:30:00 GMT

    固定

    Server 服务器的名称 Server: nginx/1.6.3 固定
    设置HTTP cookie Set-Cookie: UserID=itbilu; Max-Age=3600; Version=1 固定: 标准
    Status 通用网关接口的响应头字段,用来说明当前HTTP连接的响应状态。 Status: 200 OK  
    Trailer Trailer用户说明传输中分块编码的编码信息 Trailer: Max-Forwards 固定
    Transfer-Encoding 用表示实体传输给用户的编码形式。包括:chunkedcompress、 deflategzipidentity Transfer-Encoding: chunked 固定
    Upgrade 要求客户端升级到另一个高版本协议。 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 固定
    Vary 告知下游的代理服务器,应当如何对以后的请求协议头进行匹配,以决定是否可使用已缓存的响应内容而不是重新从原服务器请求新的内容。 Vary: * 固定
    Via 告知代理服务器的客户端,当前响应是通过什么途径发送的。 Via: 1.0 fred, 1.1 itbilu.com (nginx/1.6.3) 固定
    Warning 一般性警告,告知在实体内容体中可能存在错误。 Warning: 199 Miscellaneous warning 固定
    WWW-Authenticate 表示在请求获取这个实体时应当使用的认证模式。 WWW-Authenticate: Basic 固定
     
    展开全文
  • HTTP请求头和响应头

    千次阅读 2016-04-27 10:57:49
    这篇文章简单总结一下HTTP请求头和响应头,并举一些web开发中响应头的用例。 1. HTTP请求头 accept:浏览器通过这个头告诉服务器,它所支持的数据类型。如:text/html, image/jpeg accept-Charset:浏览器通过这个头...
  • 都知道http的请求头和响应头都可以设置cache-control属性,它的作用是用来设置静态资源缓存的。难道他们就没有什么不一样的地方么?反正一开始我是不明白,在网上也硬是没找到答案,于是这篇文章就出来了。。。鲁迅...
  • HTTP 请求头和响应头

    千次阅读 2016-11-18 12:02:22
    HTTP请求头和响应头
  • 一、HTTP常见的请求头 二、HTTP常见的响应头三、HTTP常见的响应码
  • HTTP响应头和请求头

    2018-04-25 20:39:24
    响应头格式 HTTP/1.1 状态 \r\n 响应的格式 响应头 http/1.1 200 ok \r\n content-type:text/html;charset = utf-8;\r\n #显示中文 Content-Length: 10749显示内容的长度 空行 \r\n 响应体 请求头的作用...
  • 谷歌(Chorme) 浏览器查看请求头、响应头

    万次阅读 多人点赞 2019-06-19 14:46:04
    第一步:打开浏览器,右键点击页面,点击(左键点击)检查,出现如下界面: 第二步:点击Network,... ...这里查看 243074 ,这里看一下他的headers(请求头和响应头)。 243074 ,这里看一下他的headers。...
  • curl 查看 HTTP Header 响应头信息

    万次阅读 2018-09-06 22:35:49
    curl 查看 HTTP Header 响应头信息,可参见米扑博客:curl 查看 HTTP Header 响应头信息 1、curl -I 查看HTTP 响应头信息 curl -I https://proxy.mimvp.com 1 2 3 4 5 6 7 8 ...
  • axios响应头及请求头数据处理

    千次阅读 2019-06-19 14:42:50
    axios在响应头中取token放至请求头 (不同接口若响应头中存在token则更新响应头中token值) js代码: axios.interceptors.request.use(function (config) { // 在发起请求请做一些业务处理 if (window....
  • HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。 来解释一下这四部分是什么意思吧 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定...
  • HTTP 响应头信息

    千次阅读 2018-03-08 10:49:11
    HTTP 响应头信息HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。在本章节中我们将具体来介绍HTTP响应头信息。应答头说明Allow服务器支持哪些请求方法(如GET、POST等)。Content-Encoding文档的编码...
  • HTTP的头域包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成(说白了就是键值对)。 通用头:是客户端和服务器都可以使用的头部,可以... 响应头:便于客户端提供信息...
  • 请求头格式: ...请求头部 key:value \r\n 回车换行符 \r\n 请求体 (如果get请求是没有请求体的,内容在url...响应头格式: 响应首行 协议版本/HTTP/1.1 状态码 200/404/500 状态码描述OK\r\n 响应头部 key:value...
  • HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。...响应头标:服务器和于传递自身信息的响应。实体头标:定义被传送资源的信息。即可用于请求
  • Http消息头中常用的请求头和响应头

    千次阅读 2018-09-25 16:30:18
    Http消息头中常用的请求头和响应头 作为Web开发对常用http的请求头和响应头熟悉了解一下还是很有必要的。比如请求头中Content-type指定了请求的内容,...又比如响应头X-Frame-Options 的设置直接决定了你的页面是否...
  • 文章目录常用的请求头常用的响应头状态码 常用的请求头 名称 备注 示例 Accept 设置接受的内容类型 Accept: text/plain Accept-Charset 设置接受的字符编码 Accept-Charset: utf-8 Accept-Encoding ...
  • HTTP请求头与响应头

    万次阅读 2017-03-03 15:08:21
    本篇文章中,将学习一下HTTP请求头与响应头的知识。 一、HTTP头引入: 正确的设置HTTP头部信息有助于搜索引擎判断网页及提升网站访问速度。通常HTTP消息包括:客户机向服务器的请求消息和服务器向客户机的响应...
  • python中获取请求头和响应头

    千次阅读 2019-08-27 19:28:59
    响应头:Recharge_res.headers 请求头:Recharge_res.request.headers
  • nginx添加响应头

    千次阅读 2020-04-20 18:07:03
    nginx服务器响应头设置:http://nginx.org/en/docs/http/ngx_http_headers_module.html The ngx_http_headers_module module allows adding the “Expires” and “Cache-Control” header fields, and arbitrary ...
  • 响应头含义解释

    2020-03-10 20:07:39
    响应头: Accept-Ranges定义请求返回的单位,有none和bytes Cache-Control表示通过某个指定指令来实现缓存机制,被用于在http请求和响应中 Connection表示客户端与服务连接类型,Keep-Alive表示持久连接 Content-...
  • http 响应头之location

    千次阅读 2018-11-15 05:23:47
    http 响应头之location
  • HTTP请求和相应的内容: ... 2、请求头 3、请求体:(key=value) ...2、响应头 3、响应体:web服务器把要发送给客户端的文档信息放在响应体 http请求头: accept:浏览器通过这个头告诉服务器,它...
  • 需求场景 ... 例如:一个错误信息的响应...return 响应体, 状态码, 响应头 等价于 return (响应体, 状态码, 响应头) return 可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含一个元
  • HTTP响应头信息介绍

    千次阅读 2021-02-12 11:17:33
    HTTP响应头信息 应答头 说明 Allow 服务器支持哪些请求方法(如GET、POST等) Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够...
  • http常见的请求头和响应头

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,033
精华内容 9,613
关键字:

响应头