首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot 多语言 – 国际化 – i18n

它的主要作用是根据请求的信息确定应该使用哪种语言和区域设置来呈现用户界面。白话就是:解析到底用哪种Locale对象。...Spring也封装了一些AcceptHeaderLocaleResolver:根据 HTTP 请求头的 Accept-Language 头部信息来解析 Locale。...它会尝试从请求的头部信息中获取客户端的首选语言设置。CookieLocaleResolver:根据一个特定的 cookie 中存储的 Locale 信息来解析。...SessionLocaleResolver:根据用户当前的会话(session)中存储的 Locale 信息来解析。它适合于需要在用户会话期间保持一致语言设置的应用程序。...在 Accept-Language HTTP 头部中,语言标签的格式是由 RFC 5646 定义的,这是一种标准的语言标签格式,用于指定用户的语言偏好。

89400

跟我一起探索 HTTP-内容协商

Accept-Language 标头 Accept-Language标头用来提示用户期望获得的自然语言的优先顺序。该标头的值是一个 Q 因子清单(例如 de, en;q=0.7)。...站点设计者不能过度热衷于通过这个标头来进行语言检测,因为它可能会导致糟糕的用户体验: 站点设计者应该总是提供一种方式来使用户能够覆盖由服务器端选择的语言,例如在页面上提供一个用于语言选择的按钮。...大多数用户代理会为 Accept-Language 标头提供一个默认值,该值采用的是用户界面的显示的语言。通常终端用户不能对其进行修改,或者是不知道该怎么修改,或者在他们计算机的环境中无法进行修改。...一旦用户覆盖了服务器端选择的语言选项,站点就不应该再使用语言检测技术,而应该忠于明确选择的语言选项。换句话说,只有站点的入口页面应该使用这个标头来选择合适的语言。...User-Agent 标头 备注: 尽管使用该标头来进行内容选择是合理的,但是依赖这个标头来确定用户代理都支持哪些功能特性通常[]被认为是一个糟糕的做法。

16230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTTP Headers

    HTTP Header Accept-Language Accept-Language Header向网络服务器传递的信息包含客户端有哪些语言,以及当网络服务器发回响应时首选哪种特定语言。...当网络服务器无法识别首选语言时,通常会使用特定Header。 也就是说,Accept-Language Header的关键是相关性。必须确保设置的语言符合数据目标域和客户端的IP位置。...Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。...设置应答头最常用的方法是HttpServletResponse的setHeader,该方法有两个参数,分别表示应答头的名字和值。和设置状态代码相似,设置应答头应该在发送任何文档内容之前进行。...因此,连续刷新要求每次都发送一个Refresh头,而发送204状态代码则可以阻止浏览器继续刷新,不管是使用Refresh头还是HTTP-EQUIV=”Refresh” …>。

    16710

    跨域问题详解

    跨域错误信息产生的原因 为了说明问题,我们可以做如下实验,我们在本地搭建了开发环境, 由客户端 http://localhost:3001 向服务器 http://localhost:3000 发送两个请求...具体实现方式就是使用 JSONP 来进行跨域请求。 JSONP,是 JSON with Padding 的简称,它是 json 的一种补充使用方式,利用 script 标签来解决跨域问题。...由于 JSONP 的原理是使用 script 标签来加载数据,所以它的兼容性很好,但是使用 JSONP 来解决跨域问题存在以下缺陷: 只能发送 GET 请求 发送的不是 XHR 请求,这样导致 XHR...但是,这种设置能满足所有情况吗? 更进一步,使用 CORS 时浏览器如何检查跨域错误? 前面我们有讲到,虽然浏览器报错,但是在这之前服务端已经接受了请求,那么,浏览器总是先发出请求后再进行判断吗?...[浏览器检查跨域错误原理] 3.3.2 浏览器总是先发出请求,然后根据是否有 Access-Control-Allow-Origin 响应头来判断吗 答案是,对于简单请求,是;而对于非简单请求,不是。

    2.8K30

    这篇文章让你搞懂 SpringMVC 国际化!

    默认情况下,系统是根据请求头的中 Accept-Language 字段来判断当前的语言环境的,该这个字段由浏览器自动发送,我们这里为了测试方便,可以使用 POSTMAN 进行测试,然后手动设置 Accept_Language...,这个解析器,默认是通过请求头的 Accept-Language 字段来判断当前请求所属的环境的,进而给出合适的响应。...messages.properties 这个是默认的配置,其他的则是不同语言环境下的配置,en_US 是英语(美国),zh_CN 是中文简体,zh_TW 是中文繁体(文末附录里边有一个完整的语言简称表格...getMessage 方法去获取变量的值,第一个参数是要获取变量的 key,第二个参数是如果 value 中有占位符,可以从这里传递参数进去,第三个参数传递一个 Locale 实例即可,这相当于当前的语言环境...默认情况下,在接口调用时,通过请求头的 Accept-Language 来配置当前的环境,我这里通过 POSTMAN 来进行测试,结果如下: ?

    1.1K40

    webkit浏览器常见开发问题

    一、HTTP header 网页头请求 Requests部分(列举几个重要的) Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset...Accept-Encoding: compress, gzip Accept-Language 浏览器可接受的语言 Accept-Language: en,zh Connection 表示是否需要持久连接...这个字段用户信息,表明你浏览器支持标准,服务器会解析该字段返回不同请求 (一个适配多终端的网页会做兼容处理)这点在iptv中要特别注意, 好多时候有些前端网页就是要加些特殊字段才能正常操作甚是郁闷。...三、请求重定向 重定向是在HTTP请求返回的302 Found的Location字段返回的url决定跳转的新地址 四、设置load缓存大小 在loader/cache/MemoryCache.cpp 文件中...setCapacities() 函数可以设置缓存大小, 找到一个资源加载速度于内存使用的平衡点

    84670

    HTTP 的常见头字段有哪些?说说它们的作用

    大家好,我是前端西瓜哥。 今天带大家学习一些 HTTP 常见的头字段,谈谈它们的作用,并附带一些实际使用场景。 常见的请求头字段 客户端发送到服务端的 HTTP 请求,这个数据包称为请求报文。...使用广泛的老牌压缩算法是 gzip,压缩效率最好的是 br。 Accept-Language 客户端支持的语言。...我在浏览器语言设置中做了以下设置: 浏览器发起的请求就会带上这 3 种语言,并根据顺序设置优先级: Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7...服务端可以通过这个字段来做 国际化,根据用户设置的语言来返回不同国家文案内容。...Content-Encoding: gzip 使用的压缩算法是从请求头 Accept-Encoding 中选一个出来的,返回的资源是被对应的资源压缩过的。

    88930

    第207天:HTTP协议头字段详解大全

    鉴于RFC文件规范艰深晦涩难懂,本文对协议规范中列出的HTTP Header进行了梳理,用通俗的语言进行表达,便于读者吃透HTTP协议。 1、Accept 表示客户端期望服务器返回的媒体格式。...1 Content-Type: text/html; charset=utf8 表示返回的Body是个html文本,编码为utf8 4、Accept-Language 表示客户端期望服务器返回的内容的语言...很多大型互联网公司是全球化的,它的技术文档一般有有多种语言,通过这个字段可以实现文档的本地化,对国内用户呈现简体中文文档,对英语系用户呈现英文文档。...如果Body太大,需要边计算边传输,不到最后计算结束是无法知道整个Body大小的,这个时候可以使用http分块传输,这个时候也是不需要Content-Length字段的。...另外资源的md5值往往用来放在后面的ETag头信息中作为资源的唯一标识来使用。

    54830

    HTTP协议详解

    如果将网页上的form表单的method属性设置为“GET”或者不设置method属性(默认值是GET),当用户提交表单时,浏览器也将使用GET方式发送请求。...Accept-Language Accept-Language头字段用于指定客户端期望服务器返回哪个国家语言的文档,它的值可以指定多个国家的语言,语言之间用逗号分隔,具体示例如下: Accept-Language...需要注意的是,浏览器会根据“语言首选项”对话框中语言列表的先后顺序,生成相应的Accept-Language消息头。...服务器只要检查Accept-Language请求头中的信息,按照其中设置的国家语言的先后顺序,首先选择返回位于前面的国家语言的网页文档,如果不能返回,则依次返回后面的国家语言的网页文档。 5....请求头的影响,服务器根据Accept-Language请求头的值,返回相应语言种类的网页内容。

    84410

    Python爬虫神器requests库的使用

    今天,我们就来详细介绍一下 Python 中的 requests 库,它是一个功能强大、使用方便的 HTTP 请求库。让我们从基础知识开始,一步步深入了解它的特性和实际应用场景。1....print('返回的数据:', response.json())3.3 设置请求头在某些情况下,我们需要设置 HTTP 请求头来传递额外的信息。...爬虫中的请求头设置在进行爬虫时,设置适当的请求头非常重要。以下是一些常见的请求头:User-Agent:浏览器的标识,用于告诉服务器请求来自哪个浏览器。...Accept:告诉服务器客户端能够处理的内容类型。Accept-Language:告知服务器希望接收的语言。Referer:指明请求的来源地址,通常用于防止跨站请求伪造(CSRF)。...从安装、基本功能到高级特性,这个库提供了许多便捷的功能,帮助我们轻松地处理 HTTP 请求。在实际项目中,无论是数据抓取还是与 API 的交互,requests 库都是一个不可或缺的工具。

    26800

    Python网络爬虫(浏览器伪装技术)

    3)字段3:Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Language字段主要用来表示浏览器支持的语言类型 zh-CN表示简体中文语言...; rv:47.0表示客户端操作系统对应信息 Gecko表示网页排版引擎对应信息 firefox自然表示火狐浏览器 这一行字段的信息表示为对应的用户代理信息是Mozilla/5.0 (Windows NT...import http.cookiejar url= "http://xx.xx.com/xxx/xxx.html" #以字典的形式设置headers headers={ "Accept":" text...://xx.xx.com/"} # 设置cookie cjar=http.cookiejar.CookieJar() proxy= urllib.request.ProxyHandler({'http'...使用Fiddler作为代理服务器,所爬取的网址要以具体文件或者“/”结尾。 referer字段的值一般可以设置为要爬取的网页的域名地址或对应网站的主页网址。

    51920

    Http协议简介

    6) Web服务器向浏览器发送数据 Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。...(2) 请求头 请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。...eg:Accept-Language:zh-cn.如果请求消息中没有设置这个请求报头域,服务器假定客户端对各种语言都可以接受。...Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。   (3) 请求正文 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。...没有设置该域则认为实体内容将提供给所有的语言阅读 者。eg:Content-Language:da Content-Length实体报头域 用于指明实体正文的长度,以字节方式存储的十进制数字来表示。

    89810

    PHP中getenv()函数

    在PHP中getenv(参数)函数是一个用于获取环境变量的函数,根据提供不同的参数可以获取不同的环境变量,具体如下: “PHP_SELF” 当前正在执行脚本的文件名,与document root 相关。...“HTTP_ACCEPT_LANGUAGE” 当前请求的Accept-Language: 头信息的内容。例如:“en”。...“SERVER_PORT” 服务器所使用的端口。默认为“80”。如果使用SSL 安全连接,则这个值为用户设置的HTTP 端口。...“PHP_AUTH_USER” 当PHP 运行在Apache 或IIS(PHP 5 是ISAPI)模块方式下,并且正在使用HTTP 认证功能,这个变量便是用户输入的用户名。...“PHP_AUTH_PW” 当PHP 运行在Apache 或IIS(PHP 5 是ISAPI)模块方式下,并且正在使用HTTP 认证功能,这个变量便是用户输入的密码。

    1.7K80

    接口测试

    HTTP通常用URL来建立链接和传输数据 ------- 格式: http://www.baidu.com URL每部分代表的含义及其组成 HTTP请求 一个HTTP请求通常由以下几部分组成: 请求行...【断言指定的属性的类型不能改变】 全局变量和环境变量 如果我们想要测试两个接口, 前一个的输入就是等于后一个的输出, 那么我们就可以用一个全局变量来进行记录。...概念 **全局变量: ** 全局变量是全局唯一的变量, 不可重复定义的变量 **环境变量: ** 环境变量是 - 一个变量只能属于某个环境, 在某一个环境中不可重复定义 - 在环境与环境之间可以定义重复的变量...将数据设置成为全局变量(环境变量)中, 3, A接口 获取全局变量(环境变量) 中的数据, 进行使用 **应用案列: ** 执行测试 ## 使用newman生成测试报告 先进行安装newman 然后通过下面的命令进行生成测试报告...json文件 创建xxx.json格式的文件 按照json格式的语法写入数据 ,但是要求json内容的最外层必须是[ ]包裹 , 内部是{ } 使用 一般的使用方式主要有两种 请求参数(请求头、 请求体

    14210

    【深入分析Java Web】HTTP解析-常见请求头响应头状态码

    转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 B/S网络架构的核心是HTTP协议,掌握HTTP协议对一个从事互联网工作的程序员来说是非常重要的...最关键的是,它控制着用户浏览器的渲染行为和服务器的执行逻辑。...例如,当服务器没有用户请求的数据时就会返回一个404状态码,告诉浏览器没有要请求的数据,通常浏览器就会展示一个非常不愿意看到的该页面不存在的错误信息。...下面来根据表格来了解常见的HTTP请求头、响应头以及状态码。...描述了资源所用的自然语言,与Accept-Language对应 Content-Length 指明实体正文的长度,用以字节方式存储的十进制数字来表示 Keep-Alive 保持连接的时间,如Keep-Alive

    89920

    Spring MVC更多家族成员--国际化视图与LocalResolver---10

    即使相距千里,人们也可以通过网络互相了解对方的信息和文化。但是,不管怎么说,在“地球村”没有统一的“官方语言”之前,不同地区的不同语言依然是人们能够互相交流的一道障碍。...可以有多种方式获取用户通过浏览器提交的Web请求所对应的Locale值,比如,根据HTTP的Accept-Language协议头进行解析,或者读取用户浏览器端存储的相应Cookie值等。...用户通过客户端浏览器提交Web请求之后,HTTP的Accept-Language协议头(HTTP Header)将随同Web请求一同发送给服务器端进行处理。...AcceptHeaderLocaleResolver的策略就是根据Accept-Language协议头来解析并返回当前Web请求对应的Locale值。...要让用户能够变更到其他语言内容的信息页面,我们只要根据用户提交的请求内容变更Locale值即可。

    75710

    HTTP协议

    HTTP/2.0 所有数据以二进制传输,之前版本使用字符串进行传输;同一个连接 里面发送多个请求不再需要按照顺序来;头信息压缩以及推送等提高效率的功能。 HTTP三次握手 ? 为什么要三次握手?...HTTP特性 跨域请求 同源策略,也就是说当两个请求的URL的协议、host和端口都相同的情况下,我们才认为这两个请求是同域的即同源,而只要协议、host和端口只要有一项是不同的,我们就认为是不同源的...此时,判断数据是否发生修改就变得尤为重要,通常我们采用Last-Modfied和Etag两个验证头来验证数据是否发生修改。...客户端相关参数: Accept指定返回数据类型; Accept-Encoding指定服务端的数据压缩方式,目前服务端的压缩算法有gzip, deflate, br等; Accept-Language指定返回数据的语言...,例如 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,其中q表示的是权重,也就是说浏览器更希望服务器返回的是中文; User-Agent表示浏览器的相关信息,它能区分是移动端浏览器还是

    37540

    Java Web学习总结(四)——Http协议

    一、什么是HTTP协议   HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程...一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容 范例: ?...  Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式   Accept-Language:浏览器通过这个头告诉服务器,它的语言环境   Host:浏览器通过这个头告诉服务器,...: no-cache   Pragma: no-cache 六、在服务端设置响应头来控制客户端浏览器的行为 6.1、设置Location响应头,实现请求重定向 1 package gacl.http.study...10 /** 11 * @author gacl 12 *这个小程序是用来演示以下两个小知识点 13 *1、使用GZIPOutputStream流来压缩数据 14 *2、设置响应头Content-Encoding

    35420

    rfc7234之http缓存

    缓存响应的创建 Vary Vary 是一个HTTP响应头部信息,它决定了对于未来的一个请求头,应该使用一个缓存作为响应还是向源服务器请求一个新的响应。...例如,如果响应的 Vary 字段设置为 "Accept-Language",那么在缓存响应时,代理服务器和客户端应该按照请求中的 Accept-Language 字段来区分不同的响应。...这意味着,如果一个客户端发出了两个不同的请求,其中一个请求的 Accept-Language 字段是 "en-US",另一个请求的 Accept-Language 字段是 "fr-FR",那么这两个请求应该获得不同的响应...内容协商除了vary,主要靠Accept来实现,Accept 字段,详见下表: 请求头字段 说明 响应头字段 Accept 告知服务器发送何种媒体类型 Content-Type Accept-Language...Content-Encoding 新鲜度 相关http字段 判断一个缓冲是否过期可以使用以下公式: response_is_fresh=freshness_lifetime > current_age

    31530
    领券