永久重定向将在更改站点的 URL 后,保留现有的链接/书签、上传文件时表示进度的页面等。 原理 在 HTTP 协议中,重定向操作由服务器向请求发送特殊的重定向响应而触发。...重定向响应包含以 3 开头的状态码,以及 Location 标头,其保存着重定向的 URL。 浏览器在接收到重定向时,它们会立刻加载 Location 标头中提供的新 URL。...搜索引擎和其他爬虫不会记录新的、临时的 URL。在创建、更新或者删除资源的时候,临时重定向也可以用于显示临时性的进度页面。...优先级 由于存在上述三种 URL 重定向机制,那么在多种方法同时设定的情况下,哪种方法会首先起作用呢? HTTP 协议的重定向机制永远最先触发——它们甚至在没有传输页面的情况下就已经存在。.../,URL 下的任何文件或目录也将重定向到该 URL(https://example.com/some-page 将重定向至 https://www.example.com/some-page)。
原理 在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。...浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。 ?...搜索引擎不会记录该新的、临时的链接。在创建、更新或者删除资源的时候,临时重定向也可以用于显示临时性的进度页面。 特殊重定向 除了上述两种常见的重定向之外,还有两种特殊的重定向。...优先级 由于存在上述三种 URL 重定向机制,那么在多种方法同时设定的情况下,哪种方法会首先起作用呢?...优先级顺序如下: 1.HTTP 协议的重定向机制永远最先触发,即便是在没有传送任何页面——也就没有页面被(客户端)读取——的情况下。
q=java”表示传递的搜索参数java,即该应用url表示搜索java方面的内容 片段标识符 也叫做哈希值,通常以#开始,表示定位到页面某个位置(或者说定位到页面的锚点,熟悉前端的人应该知道锚点是指页面某个部分的...id),这部分内容不传到服务器端,而是用于前端页面定位显示 2、urlencode和urldecode 概念及介绍: 像 / ?...传参的;POST方法是通过正文传参的 POST方法通过正文传参能传递更多的参数,而url的长度是有限,所以GET方式传参有限 POST方法传参更加私密,因为GET方法会将参数回显到url当中,POST方法在正文中不会被别人轻易看到...临时重定向演示: 进行临时重定向时需要用到Location字段,Location字段是HTTP报头当中的一个属性信息,该字段表明了你所要重定向到的目标网站 构建临时重定向http响应代码: /...: HTTP实际上是一种无状态协议,HTTP的每次请求/响应之间是没有任何关系的,但你在使用浏览器的时候发现并不是这样的 当你登录一次能某网站账号后,再将网站关了甚至是重启电脑,再次网站时并没有要求你再次输入账号和密码
在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。...203 Non-Authoritative Information 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。...与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。 206 Partial Content 服务器已经成功处理了部分 GET 请求。...这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。
当服务端有机会发送100 Continue响应之前就收到部分或全部实体,在结束请求之后则可跳过100 Continue响应,只发送一个最终状态码。...响应的实体主体部分中 应该包含各种引用了已创建的资源的 URL,Location 首部包含的 则是最具体的引用。服务器必须在发送这个状态码之前创建好对象。...204 No Content :响应报文中包含若干首部和一个状态行,但没有实体的主体部分。主 要用于在浏览器不转为显示新文档的情况下,对其进行更新(比如刷新一个表单页面)。...206 Partial Content :成功执行了一个部分或 Range(范围)请求。客 户端可以通过一些特殊的首部来获取部分或某个范围内的文档——这 个状态码就说明范围请求成功了。...303 See Other:告知客户端应该用另一个 URL 来获取资源。新的 URL 位于响应报文 的 Location 首部。其主要目的是允许 POST 请求的响应将客户端定向到某个资源上去。
行程最后一站的服务器会弹出一条TRACE响应,并在响应主体中携带它收到的原始请求报文。...,因为资源有语法错误运行部成功,无法响应,不是资源不存在; 2.1 200~299--成功状态码 200:OK 成功,请求的所有数据通过响应报文的entity-body部分发送;原因短语为OK; 201...服务器必须在发送这个状态码之前创建好对象; 202:Accepted 请求已被接受,但服务器还未对其执行任何动作。不能保证服务器会完成这个请求;这只是意味着接受请求时,他看起来是有效的。...主要用于在浏览器不转为显示新文档的情况下,对其进行更新(比如刷新一个表单页面); 205:Rest Content 另一个主要用于浏览器的代码。...其主要目的是允许POST请求的响应将客户端定向到某个资源上去; 304:Not Modified 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过通过此响应状态码通知客户端(带有这个状态码的响应不应该包含实体的主体部分
~~ 状态码分类 五大类 可以通过三位数字代码对不同状态码进行分类 200 到 299 之间的状态码表示成功 300 到 399 之间的代码表示资源已经被移走了 400 到 499 之间的代码表示客户端的请求出错了...状态码的目的是对这样的情况进行优化:HTTP 客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接受这个实体。...响应的实体主体部分中应该包含引用了已创建的资源的URL,Location首部包含的则是最具体的引擎。...服务器必须在发送这个状态码之前创建好对象 202 Accepted 请求已被接受,服务器还未对其执行任何动作。不能保证服务器会完成这个请求;接受请求时,它看起来是有效的。...客户端可以通过一些特殊的首部来获取部分或某个范围内的文档 300 ~ 399,重定向状态码 重定向状态码要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么就提供一个替代的响应而不是资源的内容。
所以引入了 Content: keep-alive,要求就是只要任何一方不提出断开,那么就一直连接 管线化 以往,请求需要得到回应后才能继续下一条请求,这样其实一点也不高效。...分块传输 当文件较大时,可以分割为多个部分分时传送,让浏览器一块一块的显示页面 获取部分内容 "获取部分内容")获取部分内容 当某个内容下载到一半失败时,重新下载往往从头开始,所以引入可以指定范围...,并且返回了响应报文内容 204 表示成功处理请求,但是并没有什么资源可以返回,利用这个可以做一些数据修改,添加数据的请求 206 表示成功处理部分内容的请求,返回请求所指定的报文内容 3XX 301...永久重定向,将请求的 URI 资源永久重定向到某个指定资源位置 302 临时重定向,可能重定向的资源还会再次改变 303 上面两种状态码明文上规定重定向时不允许改变请求方法,但是实际使用时大家都不怎么遵守...服务端必须正确解析上一步客服端发送的 Finshed 报文,因为里面包含了从连接开始到这一步之前所有报文的整体校验值,如果服务端成功解析说明密钥交换成功,服务端就会发送 Change Cipher Spec
作用:在整个请求链中共享数据,最常用的:在Servlet中处理好的数据要交给Jsp显示,此时参数就可以放置在Request域中带过去。...在forward之前输入到response缓冲区中的数据,如果已经被发送到了客户端,forward将失败,抛出异常 在forward之前输入到response缓冲区中的数据,但是还没有发送到客户端...在一个Servlet中进行多次forward也是不行的,因为第一次forward结束,response已经被提交了,没有机会再forward了 总之,一条原则,一次请求只能有一次响应,...方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。...调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;调用RequestDispatcher.forward
在http1.0之前,并不要求在请求行和响应行中包含http协议版本,现在应该没有web服务使用http1.0之前的协议了,我们平时几乎也见不到http1.0协议。...它的目的是对这样的情况进行优化:HTTP 客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接受这个实体。...如果服务器收到了一条带有值为 100 Continue 的 Expect 首部的请求,它会用 100 Continue 响应或一条错误码来进行响应。...服务器必须在发送这个状态码之前创建好对象 202 Accepted 请求已被接受,但服务器还未对其执行任何动作。不能保证服务器会完成这个请求;这只是意味着接受请求时,它看起来是有效的。...在对那些包含了重定向状态码的非 HEAD 请求进行响应时,最好要包含一个实体,并在实体中包含描述信息和指向(多个)重定向 URL 的链接。下表列出了已定义的重定向状态码。
(正则表达式),后者(“baz/1”)表示重定向目标地址模板,占位符“1”表示在进行正则匹配时产生的首段捕获内容(前缀“foo/”后面的部分)。...如下面的代码片段所示,在RewriteOptions对象被创建后,我们调用它的另一个AddRewrite扩展方法注册了一条服务端重定向(URL重写)规则,原始请求路径的正则表达式和重定向路径均保持不变。...图3 IIS重定向规则 由于发送的两个请求分别采用客户端和服务端重定向方式导向新的地址,所以浏览器针对前者显示的是重定向后的地址,对于后者则显示原始的地址。...我们在项目根目录下添加了一个名为rewrite.config的配置文件,并在其中定义了如下两条重定向规则。...图4Apache mod_rewrite重定向规则 如下所示的是整个过程涉及到的三次报文交换。我们可以看出第一次请求得到的响应状态码正式我们在规则中显式设置的307。
如果当前用户尚未登录但Windows Live Services,他会被自动重定向到登录页面。在尚未对客户端应用进行授权的情况下,如左图所示的授权页面会显示出来。...在取得登录用户的授权之后,授权服务器会返回一个重定向的响应,而请求提供的redirect_uri参数值直接作为重定向地址。由授权服务器生成的Authorization Code就以查询字符串(?...特性的AuthenticateAsync方法会率先被执行,但是Access Token和Authorization Code均不存在于当前请求之中,所以并不会执行任何操作。...接下来ChallengeAsync方法被执行,浏览器被重定向到Windows Live Connect的授权页面(如果当前用户尚未登录到Windows Live Connect,在此之前会先被重定向到登录页面...在取得了用户授权的情况下,授权服务器会生成一个Authorization Code,并将其作为查询字符串附加到请求提供的重定向地址,然对针对这个URL实施重定向。
也就是说,在响应数据没有输出8KB之前,数据都是存放在缓冲区中,而不会立刻发送到客户端。当Servlet执行结束后,服务器才会去刷新流,使缓冲区中的数据发送到客户端。...重定向是服务器通知浏览器去访问另一个地址,即再发出另一个请求。 5.2 完成重定向 响应码为200表示响应成功,而响应码为302表示重定向。所以完成重定向的第一步就是设置响应码为302。...因为重定向是通知浏览器再第二个请求,所以浏览器需要知道第二个请求的URL,所以完成重定向的第二步是设置Location头,指定第二个请求的URL地址。...客户端浏览器解析到响应码为302后,就知道服务器让它重定向,所以它会马上获取响应头Location,然发出第二个请求。...5.4 重定向小结 l 重定向是两次请求; l 重定向的URL可以是其他应用,不局限于当前应用; l 重定向的响应头为302,并且必须要有Location响应头; l 重定向就不要再使用response.getWriter
把背景图片都整合到一张图片中,然后用CSS的background-image和background-position属性来定位要显示的部分。 ...行内图片 Base64编码用data: URL模式来把图片嵌入页面。这样会增加HTML文件的大小,把行内图片放在(缓存的)样式表中是个好办法,而且成功避免了页面变“重”。...在DNS查找完成之前,浏览器无法从主机名下载任何东西。 DNS查找被缓存起来更高效,由用户的ISP(网络服务提供商)或者本地网络存在一个特殊的缓存服务器上,但还可以缓存在个人用户的计算机上。...必须通知浏览器,应该继续使用之前缓存的通讯录响应,还是去请求一个新的。可以通过给通讯录的Ajax URL里添加一个表明用户通讯录最后修改时间的时间戳来实现,例如&t=1190241612。...另一方面,如果JavaScript和CSS在外部文件中,并且已经被浏览器缓存起来了,那么我们就成功地把HTML文档变小了,而且还没有增加HTTP请求数。
减少DNS查询 用户输入URL以后,浏览器首先要查询域名(hostname)对应服务器的IP地址,一般需要耗费20-120毫秒时间。DNS查询完成之前,浏览器无法从服务器下载任何数据。...原则是把组件分散在2到4个主机名下,这是同时减少DNS查找和允许高并发下载的折中方案。 3. 避免重定向 HTTP重定向通过301/302状态码实现。...客户端收到服务器的重定向响应后,会根据响应头中Location的地址再次发送请求。重定向会影响用户体验,尤其是多次重定向时,用户在一段时间内看不到任何内容,只看到浏览器进度条一直在刷新。...最浪费的重定向经常发生、而且很容易被忽略:URL 末尾应该添加/但未添加。...必须通知浏览器,应该继续使用之前缓存的资源响应,还是去请求一个新的。可以通过给资源的Ajax URL里添加一个表明用户资源最后修改时间的时间戳来实现。
Header列出的协议 3.2 2XX 成功状态码 2xx 响应结果表示从客户端发来的请求在服务器端被正常处理了。...206 Partial Content(部分内容) 部分请求成功 3.3 3XX 重定向状态码 3XX 响应结果表明浏览器需要执行某些特殊的处理以完成请求。...之前改域名做SEO优化的时候经常会碰到301重定向。 状态码 状态消息 含义 300 Multiple Choices(多项选择) 客户端请求了实际指向多个资源的URL。...比如,客户端是浏览器的话,发出的请求返回204响应,那么浏览器显示的页面不会发生更新。...3.11 304 Not Modified 该状态码表示客户端发送附带条件请求时,服务器端允许请求访问资源,但未满足条件的情况。304状态码返回时,不包含任何响应的主题部分。
缺少记忆状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 HTTP协议之URL 什么是URL?...用来重定向接收方到非请求URL的位置来完成请求或标识新的资源 Location: http://www.zcmhi.com/archives/94.html Pragma 包括实现特定的指令,它可应用到响应链上的任何接收方...203 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...例如,在采用版本检查的环境下,某次 PUT 提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。
14 15 203 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。...与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。 20 21 206 服务器已经成功处理了部分 GET 请求。...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...例如,在采用版本检查的环境下,某次 PUT 提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。...重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。
head部分 put 向服务器发送一个文件(资源) trace 目的服务器在响应请求的时候,会在主体中带上原始的请求报文,用于客户端对比防火墙、代理、网关等对数据做的改变 options 请求服务器告知...203 non-authoritative information 服务器成功处理请求,但返回的实体头部元信息不是来自原始服务器上有效的确定集合,而是来自本地或第三方的拷贝。...,根据头元信息重定向 301 Moved Permanently 永久重定向,重定向URL在应该在响应的head中的location上,如果没有重定向URL应该也包含在响应体中;如果不是get和head...(大部分浏览器) 304 not modified 客户端发送一个带条件get请求,返回304表示缓存 305 use proxy 指定的资源在指定的代理上,location上包含代理所在的url上 307...server error 服务器内部错误 501 not implemented 客户端请求超出服务器的能力范围(如:服务器不能支持客户端请求的方法) 502 bad gateway 作用代理网关使用的服务器从请求响应的下一条链路上收到了一条伪响应
rewrite rewrite参数用来将客户端请求重定向到一个新的地址。...如果rewrite部分内容没有看懂,可以到搞懂nginx的rewrite模块查看更详细的介绍。 index index用于指定网站的起始页面,默认值index index.html;。...index参数只是用来指定文件的路径,nginx根据index参数查找文件是否存在,如果存在就用文件路径拼接成新的url,nginx内部重定向到这个新的url,来获取到起始页面资源。...这个例子很好的说明nginx内部会将初始页文件路径生成一个新的url,nginx内部重定向到这个新的url请求初始页文件。...url,然后nginx内部重定向到这个文件资源;如果不存在,就判断/data/test/index.php文件是否存在,如果不存在就返回403,如果存在,就使用这个文件路径来生成新的文件url,然后nginx
领取专属 10元无门槛券
手把手带您无忧上云