zoukankan      html  css  js  c++  java
  • [nginx][http] nginx关于http header的设置

    nginx关于http header有以下三个配置。

    1 proxy_set_header

    https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header

    配置命令proxy_set_header,是在ngx_http_proxy_module里边定义的。

    用来对http request header进行修改。

    2 add_header

    https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header

    配置命令 add_header,是在ngx_http_headers_module里边定义的。

    用来对http server返回的http response header进行修改,

    修改的方法是,追加的在header的最前面。

    3 add_tailer

    http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_trailer

    配置命令 add_tailer,是在ngx_http_headers_module里边定义的。

    功能与add_header相同,区别是添加在header的结尾。

    4 http header的顺序

    既然有了添加到开头或者添加到结尾的区别。那么不禁要问,http header里边的KV结构是否存在顺序区别呢?

    通过阅读rfc 2616,可以了解到如下内容:

    rfc对http的header顺序没有强制要求,但是一个好的最佳实践一般是:

    依次应该为:general-header,  request-header or response-header,  entity-header.

    The order in which header fields with differing field names are received is not significant. However, 
    it is "good practice" to send general-header fields first, followed by request-header
    or response- header fields, and ending with the entity-header fields.

    另外, 如果有多个名字相同的header存在时,“实现”应该将他们的值压缩在一起,用逗号分隔。

    逗号分隔后的内容是否包含了顺序信息应该有通讯两端定义,作为中间人的proxy不应该修改他们。

    Multiple message-header fields with the same field-name MAY be present in a message if and only if
    the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)].
    It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair,
    without changing the semantics of the message, by appending each subsequent field-value to the
    first, each separated by a comma. The order in which header fields with the same field-name are
    received is therefore significant to the interpretation of the combined field value,
    and thus a proxy MUST NOT change the order of these field values when a message is forwarded.
  • 相关阅读:
    spring配置详解
    表单重复提交解决办法
    Java 两个变量交换值
    spring @ExceptionHandler注解方式实现异常统一处理
    mybatis实战
    使用soapui调用webservice接口
    使用火狐的restclient发送http接口post及get请求
    很多网站301重定向
    邮件发布google blogger 博客
    php file取重复
  • 原文地址:https://www.cnblogs.com/hugetong/p/12737012.html
Copyright © 2011-2022 走看看