çŸåšããã¹ãŠã®å¿çã«ã¯httpããããŒããããŸã
ãµãŒããŒïŒgunicorn / 19.0.0
ã»ãã¥ãªãã£äžã®çç±ãããgunicornã§ã»ãã¥ãªãã£ã®è匱æ§ãæ€çŽ¢ããããšã人ã ãç¥ããªãããã«ãããããã¹ã¯ã§ããããã«ããããšæããŸãã ãããé ãæ¹æ³ã¯ãããŸããïŒ ããããèšå®ãä»ããŠïŒ
éåžžãgunicornã¯æ¬çªç°å¢ã®nginxãªã©ã®ãªããŒã¹ãããã·ãµãŒããŒã®èåŸã«ãããã€ãããnginxã¯ç¬èªã®Server
ã¿ã°ãåºåããŸãã
2éãã©ã¹1
@benoitcã䜿çšãããšãã³ãã³ãã©ã€ã³ã§ãªãã·ã§ã³ãææ¡ã§ããŸããã©ãæããŸããïŒ ãã以å€ã®å Žåã¯ã @ georgexshã§èª¬æãããŠããããã«ããã®ãã±ãããéããŸããæ¬çªã¢ãŒãã§ã¯ããªããŒã¹ãããã·ïŒnginxãapacheãªã©ïŒã䜿çšã§ããŸãã
post_request
ããã¯ã§ç°å¢ãå€æŽããã ãã§ã¯ãããŸãããïŒ
@tilgoviããã¯ããŸããããšæããŸã...å¥ã®ãªãã·ã§ã³ãäœæããå¿ èŠããããã©ããã¯ããããŸãã...
åäœããŸããã ãªã¯ãšã¹ãã¯ãã®æç¹ã§ãã§ã«éä¿¡ãããŠããŸãã
Server
ãããã©ã«ãã®ããããŒã«ããããã @ tilgoviããã«ãŠã§ã¢ãæ©èœããŸããã
ãµãŒããŒããããŒãå®å šã«åé€ãããšã©ããªããŸããïŒ
+1
ããããŒã®å€ãã©ã³ãã ãªæååã«èšå®ã§ããå Žåã¯ãããããŒãå®å šã«åé€ããããšãã§ããŸãã
+1
ãªãããããŒãåé€ãããã®ã§ããïŒ
以åã¯ããµãŒããŒãœãããŠã§ã¢ãšããŒãžã§ã³ãé衚瀺ã«ããããã«ãããã€ã¡ã³ãããããããŒãåé€ããŠãæ¢ç¥ã®ãšã¯ã¹ããã€ããæã€ãµãŒããŒãã¯ããŒã«ããŠãã誰ãã«ããããŒãååŸãããªãããã«ããŸããã
ããã ã»ãã¥ãªãã£ãçç±ã®1ã€ã§ãã ãã¡ããã Server
å€ãã©ã³ãã ãªãã®ã«å€æŽããããšã¯ã§ããŸãããå®éã«ã¯å¿
èŠã®ãªãäœåãªãã€ããéä¿¡ããã®ã¯ãªãã§ããïŒ
ç§ã¯èªç±ã«ãã®æ©èœã®PRãäœæããŸããïŒïŒ1384ã ããã¯ãã°ããã®éç§ã®æåæé ãªã¹ãã«èŒã£ãŠããŸããã
è°è«ã«è¿œå ããã«ã¯ïŒ httpsïŒ//www.w3.org/Protocols/ã§èª¬æãããŠããããã«ãäžéšã®ãªããŒã¹ãããã·ãµãŒããŒã¯Server
ããããŒãå€æŽããŸãããäžéšã¯Via
ããããŒãè¿œå ããŸãã rfc2616 / rfc2616-sec14.htmlïŒsec14.38
æ®å¿µãªããã @ mathiasverhoevenã¯äœããã®çç±ã§PRãçµäºããæè¿ã¯æŽ»åããŠããŸããã
--set-headers
ããã«ãããã§ããäžè¬çãªãªãã·ã§ã³ã䜿çšããããšã¯äžå¯èœã§ãããããããã§ã¯ãä»»æã®æ°ã®ããããŒãããŒãšå€ã®ãã¢ãšããŠæå®ã§ããŸããïŒ ç©ºã®å€ã¯ããããŒãå®å
šã«çç¥ããŸãã
çŸæç¹ã§ã¯ã Server
ã調æŽãããã®ã§ãããå¿çããããŒããã1ã€è¿œå ããããšæããŸãïŒäŸïŒ X-Product: MyProduct
ã
@mathiasverhoevenã®PRã«åºã¥ããŠäœããäžç·ã«æããããšãã§ããŸãã @benoitcãš@tilgoviã©ãæããŸããïŒ
ãããããã«æ®ããŠãããŸãïŒ https ïŒ Server
ããããŒã¯éåžžã«äžè¬çã§ãããå®å
šã«äžèŠã§ãã
ãŸãããµãŒããŒããããŒãçç¥ã§ããããã«ããããšæããŸãã ç§ã¯HiawathaãšåŒã°ããã»ãã¥ãªãã£ã«éç¹ã眮ããWebãµãŒããŒã䜿çšããŠãããã·ããªããŒã¹ããç¬èªã®ãµãŒããŒããããŒãè¿œå ããªãããã«èšå®ããŠãããããgunicornã®ãµãŒããŒããããŒã¯çŸåšã¯ã©ã€ã¢ã³ãã«æäŸãããŠããŸãã
@tuukkamustonenã®ã¢ã€ãã¢ã¯ç§ã«ã¯ããã§ããã :)
ç·šéïŒ https ïŒ ã§ãã server_tokens = true|false|string
ã¯çŽ æŽãããã§ãããã
Flaskãå®è¡ããŠãã人ã¯ããŸããïŒ https://stackoverflow.com/a/46858238/452210ã¯ã process_response
ã©ããããŠãªãŒããŒã©ã€ãããããããŒã眮ãæãããåé€ããããšãææ¡ããŠããŸãã
ãŸãããµãŒããŒããããŒãçç¥ã§ããããã«ããããšæããŸãã ç§ã¯HiawathaãšåŒã°ããã»ãã¥ãªãã£ã«éç¹ã眮ããWebãµãŒããŒã䜿çšããŠãããã·ããªããŒã¹ããç¬èªã®ãµãŒããŒããããŒãè¿œå ããªãããã«èšå®ããŠãããããgunicornã®ãµãŒããŒããããŒã¯çŸåšã¯ã©ã€ã¢ã³ãã«æäŸãããŠããŸãã
cloudflareã§ãããµãŒããŒããããŒã衚瀺ããŠããããšã«æ°ã¥ããã®ã§ãæè¿ã§ã¯ããããå声ãããã»ãã¥ãªãã£ã«é¢ãããã®ã§ãããã©ããã¯ããããŸããã
ã³ãã³ãã©ã€ã³ãèšå®ã«å¥ã®ãªãã·ã§ã³ãè¿œå ããã®ã§ã¯ãªããæåã«ããããŒããããŒãžã§ã³ãåé€ããã ãã ãšæããŸãã 次ã«ãæ§æãã¡ã€ã«ã®ã¿ã®èšå®ãè¿œå ããŠãserver_tokenãåé€ããŸãã ãã®å©ç¹ã¯ããµãŒããŒãæ°ããããŒãžã§ã³ã«æ£åžžã«ã¢ããã°ã¬ãŒããããšããµãŒãã¹ãåæ¢ããã«ãã®èšå®ãè¿œå ã§ããããšã§ãã èãïŒ
cloudflareã§ãããµãŒããŒããããŒã衚瀺ããŠããããšã«æ°ã¥ããã®ã§ãæè¿ã§ã¯ããããå声ãããã»ãã¥ãªãã£ã«é¢ãããã®ã§ãããã©ããã¯ããããŸããã
Cloudflareã®ãµãŒãã¹ãšãµãŒããŒããããŒã¯ãåã ã®ãµã€ãã®ãµãŒããŒãšã¯ç°ãªãã³ã³ããã¹ããæã£ãŠãããšæããŸãã ãµã€ããCloudflareãä»ããŠéãããã·ãããå Žåããããã·ãå®è¡ããŠããã®ãCloudflareã§ãããšããäºå®ã¯ä»ã®ç¹ã§ã¯äžæã§ã¯ãããŸããã ããŒã ãµãŒããŒãIPã¢ãã¬ã¹ãªã©ãä»ããŠæããã§ããå¯Ÿç §çã«ããµãŒãããŒãã£ã®ãªããŒã¹ãããã·ã䜿çšããã«VPSã§ãµã€ãããã¹ãããŠãããšããµãŒããŒãœãããŠã§ã¢ã®HTTPããããŒãä»ããå°ãªããšãçŽæ¥ã®èå¥ãåé¿ã§ããå¯èœæ§ããããŸãã ïŒãã¡ãããgunicornã«å°æ¥äœããã®è匱æ§ãããããšãå€æããå Žåãã¿ãŒã²ãããèŠã€ããããšã¯ãåã«ãµãŒããŒããããŒãæ€çŽ¢ãããããé£ããã¯ãã§ããïŒ
ã³ãã³ãã©ã€ã³ãèšå®ã«å¥ã®ãªãã·ã§ã³ãè¿œå ããã®ã§ã¯ãªããæåã«ããããŒããããŒãžã§ã³ãåé€ããã ãã ãšæããŸãã 次ã«ãæ§æãã¡ã€ã«ã®ã¿ã®èšå®ãè¿œå ããŠãserver_tokenãåé€ããŸãã ãã®å©ç¹ã¯ããµãŒããŒãæ°ããããŒãžã§ã³ã«æ£åžžã«ã¢ããã°ã¬ãŒããããšããµãŒãã¹ãåæ¢ããã«ãã®èšå®ãè¿œå ã§ããããšã§ãã èãïŒ
ããã¯çŽ æŽãããããšã§ãã ïŒ+1 ïŒïŒ slightly_smiling_faceïŒ
ã¯ããå°ãªããšãããŒãžã§ã³ãåé€ããŠãã ããã ããŒãžã§ã³ã¯å声ã«äœãè¿œå ãããæ»æè ã®æéãå€§å¹ ã«ç¯çŽããŸãã
ããŒãžã§ã³ãåé€ããããšãèããŠããŸãã @tilgoviããã«ã€ããŠäœãèãã¯ãããŸããïŒ
ç§ã«ãšã£ãŠã¯å€§äžå€«ã§ãïŒ
ããã«ã€ããŠäœãé²å±ã¯ãããŸããïŒ ããã¯ãã»ãã¥ãªãã£ã«ãšã£ãŠã¯ããã«æåããããã§ãã
ããã¯æ¬¡ã®20.1ã®äžéšã«ãªããŸã
ããŒãžã§ã³ãåé€ããããšãèããŠããŸãã
ãµãŒããŒããããŒãå®å šã«åé€ããããã®æ§æãã¡ã€ã«ã®ã¿ã®èšå®ã¯ãŸã èšç»ãããŠããŸããïŒ
@DavidOliverãªã質åã§ããïŒ
@benoitcç§ãåŒçšããããªãã®ã³ã¡ã³ãã¯ããããããã ã/åé€ãããããŒãžã§ã³çªå·ã®ã¿ã§ããããšãæå³ãããšè§£éã§ããŸãããäŒè©±ã®æ©ã段éã§ããµãŒããŒããããŒãå®å šã«åé€ããèšå®ïŒç§ãããããïŒã¯æ€èšãããŠããŸãã
ããããšãã
ãµãŒããŒããããŒãå®å šã«åé€ã§ããå Žåã¯ããããå®è¡ããå¿ èŠããããŸãã
ç§ã¯ãŸã ãããåé€ããããšã¯äœããšé¢ä¿ããããšç¢ºä¿¡ããå¿
èŠããããŸã
å®å
šã éå»10幎éã¯ââåé¡ã«ãªããŸããã§ããã ã«ããã»ãã¥ãªãã£
ãããŸããã圹ã«ç«ã¡ãŸãããåé¡ãããã
ä¿®çããã ãŸãããµãŒããŒãç¥ã£ãŠãããšæäœã«åœ¹ç«ã¡ãŸã
ãã®ããŒãžã§ã³ãæäŸããŠããã®ã§ãç§ã¯çŸæç¹ã§ããŒãžã§ã³ãåé€ããåŸåããããŸã
ãµãŒããŒã®ä¿å®æ¹æ³ã«é¢ããæ
å ±ãå€ãããŸãã ç§ãã¡ã¯ãããããã¹ãã§ã
ç§ãã¡ãç¶æããåãã©ã³ãã
èãïŒ
ããã¯
4æ23åã©ã³ããŒã«ãªãŒãºã§2019幎12æ29æ¥ã«[email protected]æžããŸããïŒ
ãµãŒããŒããããŒãå®å šã«åé€ã§ããå Žåã¯ããããå®è¡ããå¿ èŠããããŸãã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/benoitc/gunicorn/issues/825?email_source=notifications&email_token=AAADRIQBGN2KQRKOKLAYK43Q3AJ2PA5CNFSM4ASCOWF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW
ãŸãã¯è³Œèªã解é€ãã
https://github.com/notifications/unsubscribe-auth/AAADRISEUFGD43CKXLV3EZTQ3AJ2PANCNFSM4ASCOWFQ
ã>>
ç§ã®æºåž¯ããéä¿¡
ããã«ã¡ã¯ã
ç§ã¯gunicornã䜿çšããŠãããŒã¿ãååšããæ¥ç¶ãä»ããŠå¿çãæäŸããŠããŸã
é«äŸ¡ã§ããç§ãåãé€ãããšãã§ãããã®ã¯ç§ãæ¯æãå¿
èŠããªããã®ã§ãã
ãµãŒããŒããããŒã¯å°ããã§ãããå°ããªãã®ãè¿œå ãããå Žåã«ãã£ãŠã¯
å°ããªããšã¯ããã¹ãŠã1ã€å°ãªããã±ããã«åããããšãã§ããããšãæå³ããŸãã
ããŒãžã§ã³ä»ãã®ãµãŒããŒããããŒã¯24ãã€ãã§ããã€ããŒãã®çŽ1.7ïŒ
ã§ãã
1460ã®MSSãšTLSããããŒã䜿çšããŸãã äœåãªãã±ããããªããŠãã
倧ããªãã±ããã¯ãå®å
šã«åéããå¿
èŠãããå¯èœæ§ãã¯ããã«é«ããªããŸã
æ¥ç¶ãæªããšãïŒé éå°ã®ã»ã«ã©ãŒãããã¯ãŒã¯ãªã©ïŒã
æ°ããHTTPSæ¥ç¶ã§ã¯ããã³ãã·ã§ã€ã¯ãšèšŒææž
亀æã¯ãã€ããŒãã®å€§éšåãäœããå°ããªãã®ã¯ããããšãã§ããŸã
ç¡èŠãããŸãã ããŒãã¢ã©ã€ããåé·ã䜿çšããå°ããªç¹°ãè¿ããªã¯ãšã¹ãã®å Žå
ããããŒã¯ãèŠæ±/å¿çã®ã¯ããã«å€§ããªéšåã«ãªããŸãã
ããã¯ãã¯ã©ã€ã¢ã³ãããã£ãšæ°ã«ãã人ã«ãšã£ãŠãéèŠãããããŸãã
ã³ã¹ããããããã©ãŒãã³ã¹ïŒã¹ã«ãŒããããããã¬ã€ãã³ã·ãŒïŒã
ãã®ãŠãŒã¹ã±ãŒã¹ã®å Žåãæã䟿å©ãªãªãã·ã§ã³ã¯æ¬¡ã®ããšãã§ããããã«ããããšã§ãã
åã«å€ãåé€ããã®ã§ã¯ãªããããããŒãå®å
šã«åé€ããŸã
ãŸãã¯ããŒãžã§ã³éšåã
ãã®ã³ã¡ã³ãã¯ãã»ãšãã©ã®å Žåãé¢é£ããåç §/ä»æ§/ RFCæ å ±ã®è¿œå ã«éå®ãããŠãããïŒé¡ããã°ïŒã»ãšãã©ã®å Žåãéãããªã³ã®è§£é/ã³ã¡ã³ãã§ãã
RFC7231ãã€ããŒããã¹ã転éãããã³ã«ïŒHTTP / 1.1ïŒïŒã»ãã³ãã£ã¯ã¹ãšã³ã³ãã³ãhttps://tools.ietf.org/html/rfc7231#section -7.4.2
...ãªãªãžã³ãµãŒããŒã¯ããã®å¿çã§ãµãŒããŒãã£ãŒã«ããçæããŠããã[MAY]ã
ãªãªãžã³ãµãŒããŒã¯ãäžå¿ èŠã«ãã现ãã詳现ãå«ããµãŒããŒãã£ãŒã«ããçæããã¹ãã§ã¯ãªãããµãŒãããŒãã£ã«ãããµããããã¯ãã®è¿œå ãå¶éããã¹ãã§ãïŒSHOULDïŒã ãµãŒããŒãã£ãŒã«ãã®å€ãé·ãããŠè©³çŽ°ã§ãããšãå¿çã®åŸ ã¡æéãé·ããªããå éšå®è£ ã®è©³çŽ°ãæããã«ãªãå¯èœæ§ããããŸããããã«ãããæ»æè ãæ¢ç¥ã®ã»ãã¥ãªãã£ããŒã«ãïŒãããã«ïŒç°¡åã«èŠã€ããŠæªçšã§ããå¯èœæ§ããããŸãã
https://tools.ietf.org/html/rfc7231#section -9.6
9.6ã 補åæ å ±ã®é瀺
User-AgentïŒã»ã¯ã·ã§ã³5.5.3ïŒãViaïŒ[RFC7230]ã®ã»ã¯ã·ã§ã³5.7.1ïŒãããã³ServerïŒã»ã¯ã·ã§ã³7.4.2ïŒããããŒãã£ãŒã«ãã¯ãå€ãã®å Žåãããããã®éä¿¡è ã®ãœãããŠã§ã¢ã·ã¹ãã ã«é¢ããæ å ±ãæããã«ããŸãã çè«çã«ã¯ãããã«ãããæ»æè ãæ¢ç¥ã®ã»ãã¥ãªãã£ããŒã«ãæªçšãããããªããŸãã å®éã«ã¯ãæ»æè ã¯ã䜿çšãããŠããæãããªãœãããŠã§ã¢ããŒãžã§ã³ã«é¢ä¿ãªãããã¹ãŠã®æœåšçãªç©Žãè©ŠãåŸåããããŸãã ãããã¯ãŒã¯ãã¡ã€ã¢ãŠã©ãŒã«ãä»ããããŒã¿ã«ãšããŠæ©èœãããããã·ã¯ããã¡ã€ã¢ãŠã©ãŒã«ã®èåŸã«ãããã¹ããèå¥ããå¯èœæ§ã®ããããããŒæ å ±ã®è»¢éã«é¢ããŠç¹å¥ãªäºé²æªçœ®ãè¬ããå¿ èŠããããŸãã ViaããããŒãã£ãŒã«ãã䜿çšãããšã仲ä»è ã¯æ©å¯æ§ã®é«ããã·ã³åãä»®åã«çœ®ãæããããšãã§ããŸãã
ïŒéæšå¥šã®ïŒRFC2616ããïŒ
15.1.2æ©å¯æ å ±ã®è»¢é
äžè¬çãªããŒã¿è»¢éãããã³ã«ãšåæ§ã«ãHTTPã¯è»¢éãããããŒã¿ã®å 容ãèŠå¶ããããšã¯ã§ããŸããããŸããç¹å®ã®èŠæ±ã®ã³ã³ããã¹ãå ã§ç¹å®ã®æ å ±ã®æ©å¯æ§ãå€æããå éšçãªæ¹æ³ããããŸããã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã¯ããã®æ å ±ã®æäŸè ã«ããã®æ å ±ã«å¯Ÿããå¯èœãªéãã®å¶åŸ¡ãæäŸããå¿ èŠããããŸãã ãã®ã³ã³ããã¹ãã§ã¯ããµãŒããŒããã¢ããªãã¡ã©ãŒãããã³å·®åºäººã®4ã€ã®ããããŒãã£ãŒã«ãã«ã€ããŠç¹ã«èšåãã䟡å€ããããŸãã
ãµãŒããŒã®ç¹å®ã®ãœãããŠã§ã¢ããŒãžã§ã³ãæããã«ãããšããµãŒããŒãã·ã³ããã»ãã¥ãªãã£ããŒã«ãå«ãããšãããã£ãŠãããœãããŠã§ã¢ã«å¯Ÿããæ»æã«å¯ŸããŠããè匱ã«ãªãå¯èœæ§ããããŸãã å®è£ è ã¯ããµãŒããŒããããŒãã£ãŒã«ããæ§æå¯èœãªãªãã·ã§ã³ã«ããå¿ èŠããããŸãã
PEP3333 PythonWebãµãŒããŒã²ãŒããŠã§ã€ã€ã³ã¿ãŒãã§ã€ã¹v1.0.1https ïŒ //www.python.org/dev/peps/pep-3333/#the -start-response-callable
äžè¬ã«ããµãŒããŒãŸãã¯ã²ãŒããŠã§ã€ã¯ãæ£ããããããŒãã¯ã©ã€ã¢ã³ãã«éä¿¡ãããããã«ãã責任ããããŸããã¢ããªã±ãŒã·ã§ã³ãHTTPïŒãŸãã¯æå¹ãªä»ã®é¢é£ä»æ§ïŒã«å¿ èŠãªããããŒãçç¥ããå ŽåããµãŒããŒãŸãã¯ã²ãŒããŠã§ã€ã¯ãããè¿œå ããå¿ èŠããããŸãã ããšãã°ãHTTP DateïŒããã³ServerïŒããããŒã¯éåžžããµãŒããŒãŸãã¯ã²ãŒããŠã§ã€ã«ãã£ãŠæäŸãããŸãã
Apache HTTPD ServerTokens
ãªã©ãããã«é¢ããå€ãã®æèŠïŒ https ïŒ
ServerTokenãæå°æªæºã«èšå®ãããšãçžäºéçšäžã®åé¡ã®ãããã°ãããå°é£ã«ãªãããããå§ãããŸããã ãŸããServerïŒããããŒãç¡å¹ã«ããŠãããµãŒããŒã®å®å šæ§ãé«ããããšã¯ã§ããŸããã ãé ãããšã«ããã»ãã¥ãªãã£ããšããèãæ¹ã¯ç¥è©±ã§ããã誀ã£ãå®å¿æã«ã€ãªãããŸãã
ãµãŒããŒããããŒãgunicorn
ãšã ãèšãããã«å€æŽããããšã¯å®çšçãªè§£æ±ºçã§ãããæ§æãªãã§ãããè¡ãå¿
èŠããããšæããŸãã
@ kmichel-sereemaã®ããã«ããã¹ãŠã®è»¢éã®ãµã€ãºãæé©åããã人ã¯ããã®ãããªãã€ã¯ãæé©åãå®è¡ããå Žæã§ã¯ãªããšæããŸãã HTTPããããŒã®ãªãŒããŒãããã倧ããããå ŽåãHTTP 1.xã¯äœ¿çšããã®ã«çæ³çãªãããã³ã«ã§ã¯ãªãããããµãŒããŒããããŒãå€æŽãŸãã¯ç¡å¹ã«ããããã«æ§æãè¿œå ããå¿ èŠã¯ãªããšæããŸãã
@tilgoviã®ææ¡ã¯ãç§ã«ã¯è¯ã劥åç¹ã®ããã«
å€ãã®ç°å¢ã§ã¯ãããã¯æå³ããªãå ŽåããããŸãã gunicornã®å°å ¥ããã¥ã¡ã³ãã§ã¯ãgunicornã®åã«nginxãªã©ã®ãããã·ãµãŒããŒããµãŒããŒå¿çããããŒãèªåçã«åé€ããããã«ããããŒãåé€ããããã«æ§æã§ããŸãã 確ãã«ãã»ãã¥ãªãã£ã«éç¹ã眮ãããããã·ã§ãåãããšãã§ããŸãã
@ tilgovi ïŒ @ jamaddenããã®ç§ã®ææ¡ãšã³ã¡ã³ãã«ç¶ããŠãç§ã¯ãã®åé¡ãïŒ2233ã®è³æã§ç· ãããããŸãã ã³ãŒããšã³ã¡ã³ããããããšãïŒ
æãåèã«ãªãã³ã¡ã³ã
æ®å¿µãªããã @ mathiasverhoevenã¯äœããã®çç±ã§PRãçµäºããæè¿ã¯æŽ»åããŠããŸããã
--set-headers
ããã«ãããã§ããäžè¬çãªãªãã·ã§ã³ã䜿çšããããšã¯äžå¯èœã§ãããããããã§ã¯ãä»»æã®æ°ã®ããããŒãããŒãšå€ã®ãã¢ãšããŠæå®ã§ããŸããïŒ ç©ºã®å€ã¯ããããŒãå®å šã«çç¥ããŸããçŸæç¹ã§ã¯ã
Server
ã調æŽãããã®ã§ãããå¿çããããŒããã1ã€è¿œå ããããšæããŸãïŒäŸïŒX-Product: MyProduct
ã@mathiasverhoevenã®PRã«åºã¥ããŠäœããäžç·ã«æããããšãã§ããŸãã @benoitcãš@tilgoviã©ãæããŸããïŒ