Reverse HTTPãä½ãã£ã¦ããã®ãããããããªãã£ãã®ã§ã¡ã¢ï¼
Reverse HTTPã£ã¦ä½
ããï¼
http://www.reversehttp.net/index.html
- URLãè¦æ±ãã¦ããã«ãµã¼ãã¹ãæ§ç¯ã§ãã
- ã¢ããªã±ã¼ã·ã§ã³éçºè ã¯http requestãå¦çãã¦http responseãè¿ãCGIã®ãããªã³ã¼ããæ¸ãã ã
- httpã¯ã©ã¤ã¢ã³ãã®ä»çµã¿ãç¨ãã¦httpãµã¼ããå®è£ ãã¦ãã
ç®çã¯ï¼
- webãµã¼ãã¹ãç°¡åã«ä½ã£ã¦ç°¡åã«é ç½®ãããã¨ãããã¨ããª
- å¶éãããç°å¢ã§ãwebãµã¼ãã¹ãå®è¡å¯è½
- ãã©ã¦ã¶å JavaScriptã§ãµã¼ãã¹ãå®è¡
- global ipãªãã§å®è¡å¯è½
- webhookãå©ç¨ããã人ã¯private ipãããã£ã¦ããªããã·ã³ããGateway Serviceçµç±ã§ãµã¼ãã¹ãå ¬éã§ããã®ã§ç°¡åã¨ãï¼
ä»çµã¿
以ä¸ã®ããã«Gateway Serviceããµã¼ã-ã¯ã©ã¤ã¢ã³ãã仲ä»ããæ§æã«ãªã£ã¦ããï¼
Original Requestor Gateway Service Application "foo" | | | | |<---- GET ------------| | | | |----- GET /foo/a ---->| | | |----- 200 ----------->| | | "GET /a" | | | | | |<---- POST -----------| | | "404" | | | | |<---- 404 ------------|----- 202 ----------->| | | |
- Application "foo"ã¯Geteway Serviceã«http requestãæããï¼
- Gataway Serviceã¯Application "foo"ã«ããã«http responseãè¿ããã«ï¼Original Requestorããrequestãæ¥ããã¿ã¤ã ã¢ã¦ãããã¾ã§å¾ ã¤
- Gateway Serviceã¯Original Requestorããrequestãæ¥ãã¨ï¼ãã®http requestãã©ããããhttp responseãApplication "foo"ã«è¿ã
- Application "foo"ã¯Original Requestorããã®http requestãå¦çãhttp responseãè¿ã
- Gateway Serviceããã®http responseããOriginal Requestorã®http requestãåãåºãï¼(ã©ã¤ãã©ãªãè¡ã)
- "foo"ã®æ¬æ¥ã®å¦çãè¡ãï¼(ãã®é¨åã®ã³ã¼ããã¢ããªéçºè ãæ¸ã)
- Application "foo"ã¯å¦ççµæã®http responseãã©ããããhttp requestãGeteway Serviceã«POSTããï¼(ã©ã¤ãã©ãªãè¡ã)
- Gateway Serviceã¯Application "foo"ããã®http requestããhttp responseãåãåºãã¦Original Requestorã«è¿ã
- Gateway Serviceã¯Application "foo"ã«202ã®http responseãè¿ãã¦ï¼ã¡ããã¨ä¸ç¶ãããã¨ãç¥ãããï¼
ã©ã¤ãã©ãª
Erlangã§æ¸ããããµã¼ã(Gateway Service)ã¨JavaScript,Python,Javaã§æ¸ãããã¯ã©ã¤ã¢ã³ã(Applicationãè£å©ããã©ã¤ãã©ãª)ï¼
- ãµã¼ã
- ã¯ã©ã¤ã¢ã³ã
ãã¢
以ä¸ã®ãã¢ãä½ããã¦ããã®ãæåã¯ããããããªãã£ãã®ã§è§£èª¬ï¼
ãã®ãªã³ã¯ãéãã¨ï¼ããã«http://demoXXXXX.www.reversehttp.net/(XXXXXã¯æ°å¤)ã¸ã®ãªã³ã¯ãããï¼ãããéãã¨demo.htmlã®ããã¹ãã¨ãªã¢ã«æ¸ãããHTMLãæç»ãããï¼demo.htmlã®ããã¹ãã¨ãªã¢ãç·¨éããå¾ã«demoXXXXãæ´æ°ããã¨ãã®å¤æ´ãåæ ãããï¼
ããã¯demo.htmlä¸ã®JavaScriptãdemoXXXXXä¸ã®ãã¼ã¿ãæ´æ°ãã¦ããã¨ãããããããã§ã¯ãªãï¼demo.htmlä¸ã§JavaScriptã§HTTPãµã¼ãèµ·åãã¦ããï¼demoXXXXXã¸ã®ã¢ã¯ã»ã¹ãwww.revereshttp.netã仲ä»ãï¼JavaScriptã®HTTPãµã¼ããå®éã®å¦çãè¡ã£ã¦ããï¼demo.htmlä¸ã®JavaScriptãªã®ã§ãã®ããã¹ãã¨ãªã¢ã«ãã¢ã¯ã»ã¹ã§ããã¨ãããã¨ï¼
å ·ä½çã«ã¯ä»¥ä¸ã®ãããªã·ã¼ã±ã³ã¹ãå®è¡ããã¦ããã¿ããï¼
- demo.htmlãéãã¨demo.htmlã«æ¸ãããJavaScriptãå®è¡ãããï¼ãã®ã³ã¼ãã¯HTTPãµã¼ããèµ·åããï¼
- Gateway Service(www.reversehttp.net)ã«demoXXXXXã¨ããã©ãã«ã«å¯¾å¿ããURLãè¦æ±ãã
- Gatewayã¯URLãè¿ãã®ã§ï¼ãã®URLãGETãã
- Gatewayã¯ã¿ã¤ã ã¢ã¦ãããã¾ã§HTTPãµã¼ãããã®ãªã¯ã¨ã¹ããä¿æããï¼ã¿ã¤ã ã¢ã¦ãããå ´åã¯HTTPãµã¼ãã¯GETãç¹°ãè¿ã
- ã¦ã¼ã¶ãdemoXXXXXã®URLãæ´æ°ãã
- Gatewayã¯demoXXXXXã¸ã®http requestãhttp responseã«ã©ãããã¦HTTPãµã¼ãã«è¿ã
- HTTPãµã¼ãã¯http responseããã¦ã¼ã¶ã®http requestãåãåºãï¼
- HTTPãµã¼ãã¯http requestãå¦çãã
- ããã§ã¯ããã¹ãã¨ãªã¢ããã®ã¾ã¾http responseã¨ãã¦è¿ãã®ã¿
- HTTPãµã¼ãã¯å¦ççµæã®http responseãhttp requestã«ã©ãããã¦Gatewayã«POST
- Gatewayã¯HTTPãµã¼ãã®http requestããhttp responseãåãåºãã¦ã¦ã¼ã¶ã«è¿ãï¼ããã§ããã¹ãã¨ãªã¢ã®HTMLãæç»ãããï¼