ãã¡ã㯠ãã¯ã·ãæ ªå¼ä¼ç¤¾ Advent Calendar 2014 ã®12/16ã®è¨äºã§ãã ããã«ã¡ã¯ãã¨ã³ã¸ãã¢ã®@dnskimoã§ãã å æ¥ãã¯ããã¦CORSãå®è£ ããæ©ä¼ããã£ãã®ã§ãè¦æ¸ãã¦ãã¾ã¨ãã¦ããããã¨æãã¾ãã CORSã¨ã¯ Cross-origin resource sharingã®ç¥ã§ãã èªã¿æ¹ã¯ãã³ã«ã¹ãã§ãããã§ããããï¼ Same-Origin Policyã«å¼¾ãããã«ãç°ãªããã¡ã¤ã³éã§ãªã½ã¼ã¹ãå ±æããä»çµã¿ã§ãã 2014å¹´1æã«W3Cå§åã«ãªããJSONPã«æ¿ããæ¹æ³ã¨ãã¦å¾ã ã«æ®åãã¦ãã¦ããããã§ãï¼è¦åºå ¸ï¼ã ã¢ã¯ã»ã¹ã³ã³ããã¼ã«ã®ä»æ§ãå®ç¾©ããã¦ããã®ã§ãç¹å®ã®ãµã¤ãããã®ã¿å©ç¨å¯è½ãªAPIãä½ãéãªã©ã«ä¾¿å©ã§ãã JSONPã®ãããªãè£ã¯ã¶ãçãªæ¹æ³ã§ã¯ãªãã¨ãããå人çã«å¥½ã¿ã§ãã 詳ãããã¨ã¯ãããä¸ã«ç´ æ´ãããè¨äºãããããããã®ã§
第ï¼åã²ã¼ã ãµã¼ãåå¼·ä¼ç¨è³æã§ãã Webã®æè¡ã®æ ¹å¹¹ã¨ãªãHTTPãTCP/IPã軽ããããããããã¨ã ãã«ãããã»ã¹ããã«ãã¹ã¬ãããã¤ãã³ãé§åã¨ãã£ããµã¼ãã¢ã¼ããã¯ãã£ã«ã¤ãã¦è§£æãã ããã«ã¤ãã³ãé§åãå®ç¾ããããã®éããããã³ã°I/Oã¨I/Oã®å¤éåã«ã¤ãã¦è§£èª¬ãã¾ãã
åç»ã¯ãã¼ã¿å®¹éã大ãã ç»åã¨éããåç»ã³ã³ãã³ãã¯ãã¼ã¿å®¹éãã¨ã¦ã大ããããããã¼ã¿ããã¦ã³ãã¼ããã¦åçããã¾ã§ã«å¾ ã¡æéãçºçãã¾ãã åç»ã®ãã¼ã¿å®¹éã大ããçç±ã¯ã¨ã¦ãåç´ã§ãåç»ã¯ç»åãã¼ã¿ãéåãããã®ã ããã§ããéæ¢ç»åã人éã®ç®ãæ»ããã«æããããéãã§åãæ¿ãã¦è¡¨ç¤ºãããã¨ã§çµµãåããã¨ãã表ç¾ãå®ç¾ãã¦ãã¾ãï¼ãããã©ãã©ãã³ã¬ã«ä¾ãããã¾ããããããªæãã§ãï¼ããã®äººéã®ç®ãæ»ããã«æããéãã¨ããã®ã 1 ç§éã« 30 æã ã£ãã 24 æãåãæ¿ãããã¨ã«ãªãã¾ãã29.97 (â30) fps ã¨ã 24 fps ã¨ãã®æ°åãè³ã«ãããã¨ããããã¨æãã¾ããã24 fps ã®å ´å㯠1 ç§éï¼sï¼ã®éï¼pï¼ã« 24 ãã¬ã¼ã ï¼fï¼ãåãæ¿ãããã¨ãæå³ãã¾ãã ãã¼ã¿ãå ¨ã¦èªåã®ç«¯æ«ã«ãã¦ã³ãã¼ããã¦ããåçãããã¨ããã¨ãããªãé·ãå¾ ã¡æéãçºçãã¦ãã¾
ååãããã³ãã¨ã³ãã¨ã³ã¸ãã¢ã®ããã®åç»ã¹ããªã¼ãã³ã°æè¡åºç¤ãã§ã¯ HTTP ãã¼ã¹ã®ã¹ããªã¼ãã³ã°æè¡ã«é¢ãã¦åå¼·ä¼ãå®æ½ãã¾ãããè¦è´è ã«æ åãå±ããããã®ã¹ããªã¼ãã³ã°æè¡ã«é¢ãã¦ã®ã話ã§ããã æ¬è¨äºã¯ãAbemaTV ã®çæ¾éçªçµã§æ®å½±æ©æããéãããæ åãã¨ã³ã³ã¼ãã¼ãä»ãã¦ãªã¢ã«ã¿ã¤ã ã«æ¾éããé¨åã«ã¤ãã¦åå¼·ä¼ãå®æ½ããéã®è³æã§ãã çæ¾éã«ãããåç»ãã¼ã¿ã®éä¿¡ AbemaTV ã§ã¯çæ¾éã§æ®å½±ããåç»ãã¼ã¿ã®ããã¨ãã« RTMP ã¨ãããããã³ã«ãå©ç¨ãã¦ãã¾ãã RTMP ã¨ã¯ RTMP 㯠Real-Time Message Protocol ã®ç¥ã§ããã®ååã®éããªã¢ã«ã¿ã¤ã ã«ã³ãã¥ãã±ã¼ã·ã§ã³ãè¡ãããã®ãããã³ã«ã§ããWeb æ¥çã§ã¯ Photoshop ãªã©ã§ã馴æã® Adobe Systems 社ãéçºãã¦ãã¾ããAdobe Flash Player
Intro ãã©ã¦ã¶ã¯ãªãã¼ãæã«ã max-age ã«æºããªããã£ãã·ã¥ãæã£ã¦ãã¦ã Conditional GET ã«ãã£ã¦ãã£ãã·ã¥ã® Validate (æå¹æ§ã®åãåãã)ãè¡ãã Cache-Control Extension ã¨ãã¦ææ¡ããã¦ãã Immutable æ¡å¼µã¯ããã£ãã·ã¥ã max-age å ã§ããã°ãªãã¼ãæããã£ãã·ã¥ããããããæ¡å¼µã§ããã ãã®ãããã®å¹æã¨ãæ¬ãµã¤ãã¸ã®é©ç¨ã«ã¤ãã¦è¨ãã Cache-Control Cache-Control ã« max-age ãæå®ãããã¨ã§ããã©ã¦ã¶ã«ãªã½ã¼ã¹ããã£ãã·ã¥ããããã¨ãã§ããã ãã®ãã£ãã·ã¥ã¯ max-age ã®æéå 㯠fresh ã¨ã¿ãªããã fresh ã§ããã°ãµã¼ãã¸ã®åãåãããªãåå©ç¨ãããã ãµã¼ãã¸ã®åãåãã(RTT)ãç¡ããããäºå®ä¸æéã®ãªã½ã¼ã¹åå¾ã¨ãªãã Reload
How the HTTP Cache works All HTTP requests that the browser makes are first routed to the browser cache to check whether there is a valid cached response that can be used to fulfill the request. If there's a match, the response is read from the cache, which eliminates both the network latency and the data costs that the transfer incurs. The HTTP Cache's behavior is controlled by a combination of r
Webã«ããããããã¯ã¼ã¯éä¿¡ ããããã¯ã¼ã¯ã£ã¦ãªãã ããï¼ãã¨èãããã¨ã¯ããã ããããåè·ã§ãããã°ã©ãã¨ãã¦åãã¦ãããã®ã®ãï¼æ¥ããããªããï¼ç¥èã¯çç¡ã«è¿ãã£ãããWebã®ããã³ãã¨ã³ã¸ãã¢ã¨ãã¦èµãåã£ã2å¹´ã¨5ã¶æåã¯ããã®æã®è©±ãããã³ãã¨ã³ãã«é¢ããã¨ã¯æã£ã¦ãããªãã£ãã HTTPã ã®ãWebSocketã ã®ãè¨èã¯è³ã«ãããã©å®æ ã¯ããããããªã â¦ã¨ãã人ãå¤ãã¨æããç§èªèº«ãæ·±ãå¯çãã¦ããããã§ã¯ãªãããèªãã»ã©è©³ãããã¨è¨ãããã°çå符ãæ®ããããã§ããä»ã¾ã§ã¢ã¤ã¢ã¤ãã¦ããã¨ãããå°ãã§ãæ´ããæå©ããåºæ¥ãã°ã¨æããä»æ¥ã¯ã¤ã³ã¿ã¼ãããã®ä¸çã§ä½ãèµ·ãã£ã¦ãããã«ã¤ãã¦ã®è¨äºãæ¸ãããã ãããããµã¼ãã¼ã¨ã¯ï¼ ãµã¼ãã¼ã£ã¦ä¸ä½ä½ã ããã¨æã£ã¦ãã人ãå¤ãã®ã§ã¯ãªãã ãããï¼æå ã®ãã½ã³ã³ãiPhoneãAndroidã¨ãã£ã ã¯ã©ã¤ã¢ã³ãããã®è¦æ±ãå¾
Update [14/11/11]: Chromium ã§ã®å®è£ ã M40 ãããããããªã®ã§ãæ«å°¾ã«å¼ç¨è¿½è¨ããã¦ããã ãã¾ããã [14/11/12]: ãã®è¨äºãæ¸ãã«ããã£ã¦ãè²ã ãªããã«ã¬ãã¥ã¼ãå©è¨ãé ããã®ã§ãããè¬è¾ãªã©ãä¸åæãã¦ã¾ãããæ¬å½ã«ããã¾ããã追è¨ãã¾ããããååé ããæ¹ã æ¬å½ã«ãããã¨ããããã¾ããã WHATGW Fetch Spec WHATWG ã®ã¡ã³ããã³ã¹ãããã©ããã« Fetch Spec ã追å ããã¾ããã ãããã§ã«æ¥æ¬èªè¨³ãããã¾ãããã°ããããFetch Standard æ¥æ¬èªè¨³ ãã®ä»æ§ã«ã¯äºã¤ã®ãã¨ãå®ç¾©ããã¦ãã¾ãã "Fetching": Fetch ããã¨ã¯ä½ã? ã®å®ç¾© "Fetch API": fetch() ã®å®ç¾© å¾è ã®å®ç¾©ã«åºã¥ã fetch() ã¨ãã DOM API ã®å®è£ ãå§ã¾ã£ã¦ãã¾ãã(詳細ã¯å¾è¿°) ããã
è¥è ã®ãããã³ã«é¢ããå«ã°ãã¦ä¹ ããããæè¿ãããã³ã«ã¯é常ã«ããããªåéã§ããã ç®ã¾ããããé²åããWebã«åããããããã³ã«ã®ä¸çãçå®ã«é²åãã¦ããã ä»ã¾ã§ãã©ã¦ã¶ã§ã¯åºæ¥ãªãã£ãäºãåºæ¥ãããã«ãªããWebãµã¼ãã¹ãããå®å ¨ã«ä½¿ããããã«ãªã£ãã ããã¦Webã®ããã©ã¼ãã³ã¹ã大ããæ¹åããããã«HTTP2.0ãè°è«ããã¦ããã Webãæ¯ãããããã³ã«ã¨ãã¦ã大ããåãã¦ï¼ã¤ã«åãããããã¨æãï¼ç§ã®åæãªã¤ã¡ã¼ã¸ãæ£ç¢ºãªå³ã§ã¯ããã¾ããï¼ Webã¢ããªã±ã¼ã·ã§ã³ ãã©ã¦ã¶ãä»ã¾ã§åºæ¥ãªãã£ããã¨ãåºæ¥ãããã«ããããWebã¢ããªã±ã¼ã·ã§ã³ã®èªè¨¼ã»èªå¯ãªã©ã®æ©è½ãæä¾ãããããã³ã«ãªã©ãJSããµã¼ããµã¤ãããã°ã©ãã³ã°ã§å©ç¨ãããããã WebSocket (http://tools.ietf.org/html/rfc6455) ãã©ã¦ã¶ã¨Webãµã¼ãã®éã§ã½ã±ããéä¿¡ãè¡ã
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}