请问哪里可以看到最全的 HTTP Header 的说明呀? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
nnegier

请问哪里可以看到最全的 HTTP Header 的说明呀?

  •  
  •   nnegier May 6, 2023 1656 views
    This topic created in 1086 days ago, the information mentioned may be changed or developed.

    我用 ChatGPT 问了一个获取客户端 IP 的代码,不太敢用,我得查一下:

    public String getClientIP(HttpServletRequest request) { String ip = request.getHeader("X-Real-IP"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { //经过如负载均衡后的请求 header 会添加此请求头来标识源客户端的 IP 地址,如果不这样弄的话,那拿到负载均衡机器的 IP 地址并没有什么用的。 ip = request.getHeader("X-Forwarded-For"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } 

    这是我发现的网站: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers ,但像代码中的大部分 Header 查不到,我就只查到一个 X-Forwarded-For

    Kumo31
        1
    Kumo31  
       May 6, 2023
    546L5LiK6ZOt
        2
    546L5LiK6ZOt  
       May 6, 2023
    Kumo31
        3
    Kumo31  
       May 6, 2023
    @Kumo31 刚刚没看清楚问题... 你的这些 Header 都是自定义的,不是标准的一部分,每个反向代理或 API 网关都有可能自己定义一个不同的 Header 用来表示真实 IP ,所以得看你的具体场景来判断...
    v2eb
        4
    v2eb  
       May 6, 2023
    请求被 nginx 转发时, 可能会添加请求头 x-real-ip 这种, nginx 没配置的话就没有了
    其他几个请求头同理
    aru
        5
    aru  
       May 6, 2023
    不要随便相信 header 里面附带的 IP 变量!!!
    很多网站的 ip 限制就是被这种方式给骗过去的。
    mikewang
        6
    mikewang  
       May 6, 2023
    0. 目前来说,ChatGPT 生成的代码质量很低,不能直接用;
    1. WL-Proxy-Client-IP 这类 header 是网关或者 CDN 自己定义的,需要查它们的文档,没有汇总;
    2. 这种代码是有隐患的,客户端通过伪造这些 header ,可以欺骗你的程序。参考中科大测速被 XSS 的事件: /t/889220
    yinmin
        7
    yinmin  
       May 6, 2023 via iPhone
    如果你是使用 nginx 前置部署的话,建议自定义一个 header 私有名称,避免被欺骗。
    nnegier
        8
    nnegier  
    OP
       May 6, 2023
    @546L5LiK6ZOt 那里面的内容和我文中的链接里的一样一样的
    nnegier
        9
    nnegier  
    OP
       May 6, 2023
    @ aru
    @ mikewang
    @ yinmin
    感谢提醒呀
    About     Help     Advertise     Blog     API     FAQ     Solana     4141 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 04:13 PVG 12:13 LAX 21:13 JFK 00:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86