HEAD 应描述与 GET 相同的表示
HEAD 是 GET 的元数据视图;状态与表示头应讲同一个故事。
HEAD 是 GET 的元数据视图;状态与表示头应讲同一个故事。
发送给过多主机或路径的 Cookie,会放大这些边界上每个错误的冲击。
状态码需要放在请求方法的上下文里理解,它告诉客户端怎样解释本次 HTTP 响应。首位数字只能缩小类别,不能说明完整业务结果。例如,任务已经接受,仍可能没有完成;三开头的响应,也未必表示页面搬家。服务器应根据实际完成的事情选择具体状态,并提供相应响应头和内容,避免让一个看起来合理的数字承担它从未承诺的含义。 结合请求方法、正文、响应头和显式状态变化阅读这七次响应。200 状态读取可以返回仍在等待的任务,304 则不传输资源正文。调用方保留先前的资源字节;夹具不自动跟随重定向,也没有测试浏览器缓存,不能证明持久入队或最终完成。 成功不只有一种含义 二百表示请求按照相应方法的语义成功。成功读取任务状态资源,可以如实返回“任务仍在等待”的表示;这不代表任务本身已经结束。二零一表示创建了一个或多个资源,提供 Location 时,它用于识别主要的新建资源。接口需要说明客户端接下来应操作哪个资源,而不是把所有二开头的响应都解释成“用户最初想要的整个业务已经完成”。 二零二表示请求已经接受处理,但尚未完成,也不会对最终一定执行成功作出保证。应提供观察进度的途径,并定义最终成功与失败,否则客户端很难区分任务缓慢与任务丢失。二零四表示请求成功完成且没有响应内容;不能因为框架平常总是序列化 JSON,就给这种响应也附加正文。具体状态对应的消息约束需要贯穿最终输出。 三开头也可能是在验证已有表示 三零一与三零八表达永久重定向,三零二与三零七表达临时重定向,并具有不同的方法保留规则。三零三可以让调用方在处理步骤之后转而读取另一个资源。请求携带正文或具有副作用时,更要明确选择:可能改变方法的跳转,与必须保留方法的跳转,不能随意互换。客户端是否跟随,也应依据它实际要完成的动作判断。 ...
文件名只是一个提示,响应头才是面向浏览器的表示契约。