{"id":6189,"date":"2025-10-11T16:26:28","date_gmt":"2025-10-11T07:26:28","guid":{"rendered":"https:\/\/sky-peace.net\/?p=6189"},"modified":"2025-10-11T16:26:28","modified_gmt":"2025-10-11T07:26:28","slug":"websocket","status":"publish","type":"post","link":"https:\/\/sky-peace.net\/certified\/websocket\/","title":{"rendered":"WebSocket\u306e\u4e2d\u7d99\u6a5f\u80fd\u3068\u306f\uff1f\u540c\u3058\u30dd\u30fc\u30c8\u3067\u53cc\u65b9\u5411\u901a\u4fe1\u3092\u5b9f\u73fe\u3067\u304d\u308b\u4ed5\u7d44\u307f\u3092\u56f3\u89e3\u3067\u89e3\u8aac"},"content":{"rendered":"<p>\u300cWebSocket\u306f\u3001HTTP\u3068\u540c\u3058\u30dd\u30fc\u30c8\uff0880\u756a\u3084443\u756a\uff09\u3092\u4f7f\u3048\u308b\u304b\u3089\u4fbf\u5229\u3060\u300d\u3068\u3001IT\u8cc7\u683c\u8a66\u9a13\u3084\u6280\u8853\u89e3\u8aac\u8a18\u4e8b\u3067\u3088\u304f\u8a00\u308f\u308c\u307e\u3059\u3002\u78ba\u304b\u306b\u305d\u306e\u901a\u308a\u3067\u3059\u304c\u3001\u306a\u305c\u65b0\u3057\u3044\u30d7\u30ed\u30c8\u30b3\u30eb\u306a\u306e\u306b\u65e2\u5b58\u306eHTTP\u30dd\u30fc\u30c8\u3092\u4f7f\u3048\u308b\u306e\u304b\u3001\u305d\u306e<strong>\u300c\u4e2d\u7d99\u6a5f\u80fd\u300d<\/strong>\u306e\u4ed5\u7d44\u307f\u307e\u3067\u6df1\u304f\u7406\u89e3\u3067\u304d\u3066\u3044\u307e\u3059\u304b\uff1f<\/p>\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001\u3053\u306eWebSocket\u304c\u6301\u3064\u3001HTTP\u901a\u4fe1\u3092\u201c\u30c8\u30f3\u30cd\u30eb\u5316\u201d\u3057\u3066\u53cc\u65b9\u5411\u901a\u4fe1\u3078<strong>\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\uff08Upgrade\uff09<\/strong>\u3055\u305b\u308b\u4ed5\u7d44\u307f\u306b\u7126\u70b9\u3092\u5f53\u3066\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002\u3053\u306e\u4ed5\u7d44\u307f\u3053\u305d\u304c\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3084\u30eb\u30fc\u30bf\u306e\u8a2d\u5b9a\u3092\u307b\u3068\u3093\u3069\u5909\u3048\u305a\u306b\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u901a\u4fe1\u3092\u5b9f\u73fe\u3067\u304d\u308b\u672c\u8cea\u3067\u3059\u3002<\/p>\n<p>\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13\uff08\u4ee4\u548c3\u5e74\u6625 \u5348\u5f8c\u554f\uff09\u3067\u3082\u554f\u308f\u308c\u305f\u3001WebSocket\u306e\u6838\u5fc3\u3068\u306a\u308b\u6280\u8853\u8981\u7d20\u3092\u3001\u56f3\u89e3\u3068\u5177\u4f53\u4f8b\u3068\u3068\u3082\u306b\u5b8c\u5168\u7406\u89e3\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2>1. WebSocket\u3068\u306f \u2014 HTTP\u901a\u4fe1\u3092\u62e1\u5f35\u3057\u305f\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u6280\u8853\u3092\u5fdc\u7528\u60c5\u5831\u5bfe\u7b56\u3068\u3057\u3066\u89e3\u8aac<\/h2>\n<p>WebSocket \u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\uff08\u30d6\u30e9\u30a6\u30b6\u306a\u3069\uff09\u3068\u30b5\u30fc\u30d0\u9593\u3067<strong>\u53cc\u65b9\u5411\u304b\u3064\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0<\/strong>\u306b\u30c7\u30fc\u30bf\u3092\u3084\u308a\u53d6\u308a\u3059\u308b\u305f\u3081\u306b\u958b\u767a\u3055\u308c\u305f\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u3059\u3002<\/p>\n<p>\u5f93\u6765\u306e HTTP (HyperText Transfer Protocol) \u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a\u3001\u30b5\u30fc\u30d0\u304c\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u8fd4\u3059\u3068\u3044\u3046<strong>\u5358\u65b9\u5411<\/strong>\u306e\u901a\u4fe1\u30e2\u30c7\u30eb\uff08\u534a\u4e8c\u91cd\u901a\u4fe1\uff09\u3067\u3057\u305f\u3002\u30b5\u30fc\u30d0\u5074\u304b\u3089\u300c\u4f55\u304b\u3042\u3063\u305f\u304b\u3089\u901a\u77e5\u3059\u308b\u300d\u3068\u3044\u3046\u30d7\u30c3\u30b7\u30e5\u901a\u77e5\u3092\u884c\u3046\u306b\u306f\u3001\u30dd\u30fc\u30ea\u30f3\u30b0\uff08\u77ed\u3044\u9593\u9694\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a\u7d9a\u3051\u308b\uff09\u306a\u3069\u975e\u52b9\u7387\u306a\u624b\u6cd5\u3092\u7528\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>WebSocket \u306e\u6700\u5927\u306e\u7279\u5fb4\u306f\u3001\u4e00\u5ea6\u63a5\u7d9a\u304c\u78ba\u7acb\u3055\u308c\u308b\u3068\u3001\u305d\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u7dad\u6301\u3057\u305f\u307e\u307e\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u306e\u3069\u3061\u3089\u304b\u3089\u3082\u81ea\u7531\u306b\u30c7\u30fc\u30bf\u3092\u9001\u53d7\u4fe1\u3067\u304d\u308b\u70b9\u3067\u3059\uff08\u5168\u4e8c\u91cd\u901a\u4fe1\uff09\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u6027\u304c\u6c42\u3081\u3089\u308c\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<ul>\n<li>\u30c1\u30e3\u30c3\u30c8\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n<li>\u682a\u4fa1\u3084\u70ba\u66ff\u30ec\u30fc\u30c8\u306a\u3069\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u8868\u793a<\/li>\n<li>\u30aa\u30f3\u30e9\u30a4\u30f3\u30b2\u30fc\u30e0\u306e\u901a\u4fe1<\/li>\n<li>IoT\u30c7\u30d0\u30a4\u30b9\u304b\u3089\u306e\u30c7\u30fc\u30bf\u53ce\u96c6<\/li>\n<\/ul>\n<h3>\u3010WebSocket\u901a\u4fe1\u304c\u59cb\u307e\u308b\u307e\u3067\u306e\u6d41\u308c\uff08A to Z \u30b9\u30bf\u30a4\u30eb\uff09\u3011<\/h3>\n<ol>\n<li>**\u30cf\u30f3\u30c9\u30b7\u30a7\u30a4\u30af\uff08\u63e1\u624b\uff09**\uff1a\u307e\u305a\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u901a\u5e38\u306e HTTP \u901a\u4fe1\u3068\u3057\u3066\u3001\u30b5\u30fc\u30d0\u306b\u5bfe\u3057\u3066\u7279\u5225\u306a\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a\u307e\u3059\u3002<\/li>\n<li>**Upgrade\u30ea\u30af\u30a8\u30b9\u30c8**\uff1a\u3053\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u306b\u306f\u3001\u7279\u5b9a\u306e\u30d8\u30c3\u30c0\uff08<code>Connection: Upgrade<\/code>\u3001<code>Upgrade: websocket<\/code>\u306a\u3069\uff09\u304c\u542b\u307e\u308c\u3066\u304a\u308a\u3001\u300cWebSocket\u30d7\u30ed\u30c8\u30b3\u30eb\u306b\u5207\u308a\u66ff\u3048\u305f\u3044\u300d\u3068\u3044\u3046\u610f\u601d\u3092\u4f1d\u3048\u307e\u3059\u3002<\/li>\n<li>**\u30d7\u30ed\u30c8\u30b3\u30eb\u5207\u308a\u66ff\u3048\uff08101 Switching Protocols\uff09**\uff1a\u30b5\u30fc\u30d0\u304c\u3053\u308c\u3092\u53d7\u3051\u5165\u308c\u308b\u3068\u3001HTTP \u30ec\u30b9\u30dd\u30f3\u30b9\u3068\u3057\u3066\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 <code>101 Switching Protocols<\/code> \u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n<li>**WebSocket\u30bb\u30c3\u30b7\u30e7\u30f3\u958b\u59cb**\uff1a\u3053\u306e\u5fdc\u7b54\u3092\u3082\u3063\u3066\u3001TCP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u306f\u5207\u65ad\u3055\u308c\u305a\u306b**\u30d7\u30ed\u30c8\u30b3\u30eb\u3060\u3051\u304c HTTP \u304b\u3089 WebSocket \u3078\u3068\u5207\u308a\u66ff\u308f\u308a**\u3001\u4ee5\u964d\u306f\u53cc\u65b9\u5411\u901a\u4fe1\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n<p>\u3053\u306e\u300cHTTP\u304b\u3089\u59cb\u307e\u308b\u304c\u3001\u9014\u4e2d\u3067\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u5207\u308a\u66ff\u3048\u308b\u300d\u3068\u3044\u3046\u52d5\u4f5c\u3053\u305d\u304c\u3001\u5f8c\u306e\u300c\u4e2d\u7d99\u6a5f\u80fd\u300d\u306e\u89e3\u8aac\u3067\u975e\u5e38\u306b\u91cd\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002<\/p>\n<h2>2. WebSocket\u306e\u201c\u4e2d\u7d99\u6a5f\u80fd\u201d\u3068\u306f\u4f55\u304b\uff1f \u2014 HTTP\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u518d\u5229\u7528\u3059\u308b\u4ed5\u7d44\u307f\u3092\u56f3\u89e3\u3067\u89e3\u8aac<\/h2>\n<p>WebSocket \u306e\u4e2d\u7d99\u6a5f\u80fd\uff08\u307e\u305f\u306f\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\u6a5f\u80fd\uff09\u3068\u306f\u3001**\u65e2\u5b58\u306e HTTP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u518d\u5229\u7528\u3057\u3001\u65b0\u3057\u3044\u30dd\u30fc\u30c8\u3092\u958b\u304b\u305a\u306b\u53cc\u65b9\u5411\u901a\u4fe1\u3092\u5b9f\u73fe\u3059\u308b**\u4ed5\u7d44\u307f\u3067\u3059\u3002\u3053\u308c\u306f\u3001\u79c1\u305f\u3061\u304c\u666e\u6bb5\u5229\u7528\u3057\u3066\u3044\u308b\u300c\u30c8\u30f3\u30cd\u30eb\u300d\u306b\u975e\u5e38\u306b\u4f3c\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3>\u8eab\u8fd1\u306a\u4f8b\u3048\uff1a\u30c8\u30f3\u30cd\u30eb\u3092\u300c\u53cc\u65b9\u5411\u300d\u3067\u4f7f\u3046<\/h3>\n<p>\u901a\u5e38\u3001HTTP \u901a\u4fe1\u306f\u3001\u8eca\u3067\u3044\u3046\u3068\u300c\u7247\u9053\u901a\u884c\u306e\u9053\u8def\u300d\u306e\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u3002\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\uff08\u8eca\uff09\u304c\u30b5\u30fc\u30d0\u30fc\uff08\u76ee\u7684\u5730\uff09\u3078\u4e00\u65b9\u7684\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a\u307e\u3059\u3002<\/p>\n<p>\u4e00\u65b9\u3001WebSocket \u306f\u3001\u6700\u521d\u3053\u305d HTTP \u3068\u3044\u3046\u9053\u8def\u3092\u901a\u308a\u307e\u3059\u304c\u3001\u9014\u4e2d\u3067 **\u300c\u3053\u3053\u306f\u53cc\u65b9\u5411\u901a\u4fe1\u304c\u53ef\u80fd\u306a\u5c02\u7528\u30c8\u30f3\u30cd\u30eb\u306b\u5207\u308a\u66ff\u3048\u307e\u3059\u300d** \u3068\u3044\u3046\u624b\u7d9a\u304d\uff08Upgrade\uff09\u3092\u884c\u3046\u3053\u3068\u3067\u3001**\u540c\u3058\u9053\u8def\u306e\u51fa\u53e3**\u304b\u3089\u3001\u4eca\u5ea6\u306f\u30b5\u30fc\u30d0\u30fc\u5074\u304b\u3089\u3082\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u5411\u3051\u3066\u81ea\u7531\u306b\u30c7\u30fc\u30bf\uff08\u8eca\uff09\u3092\u9001\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u3053\u3067\u91cd\u8981\u306a\u306e\u306f\u3001**\u300c\u65b0\u3057\u3044\u9053\u8def\uff08\u30dd\u30fc\u30c8\uff09\u3092\u4f5c\u3063\u3066\u3044\u306a\u3044\u300d** \u3068\u3044\u3046\u70b9\u3067\u3059\u3002<\/p>\n<h3>\u300c\u4e2d\u7d99\u300d\u306e\u6838\u5fc3\uff1a101 Switching Protocols \u3068\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u306e\u7dad\u6301<\/h3>\n<p>\u306a\u305c\u3001WebSocket \u304c HTTP \u3068\u540c\u3058\u30dd\u30fc\u30c8\uff0880\u756a\u3084443\u756a\uff09\u3067\u901a\u4fe1\u3067\u304d\u308b\u306e\u304b\u3002\u305d\u306e\u7406\u7531\u306f\u3001\u30bb\u30af\u30b7\u30e7\u30f31\u3067\u89e6\u308c\u305f\u300c\u30d7\u30ed\u30c8\u30b3\u30eb\u5207\u308a\u66ff\u3048\u300d\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<figure><figcaption>\u3010\u56f3\u89e3\u3011WebSocket\u306e\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u30fb\u30b7\u30fc\u30b1\u30f3\u30b9\uff08\u30a4\u30e1\u30fc\u30b8\uff09<\/figcaption><\/figure>\n<table>\n<thead>\n<tr>\n<th>\u30b9\u30c6\u30c3\u30d7<\/th>\n<th>\u30a2\u30af\u30b7\u30e7\u30f3<\/th>\n<th>HTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9<\/th>\n<th>\u5099\u8003<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1.<\/td>\n<td>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8 \u2192 \u30b5\u30fc\u30d0\u30fc<\/td>\n<td>HTTP\u30ea\u30af\u30a8\u30b9\u30c8<\/td>\n<td><code>Connection: Upgrade<\/code> \u3092\u542b\u3080<\/td>\n<\/tr>\n<tr>\n<td>2.<\/td>\n<td>\u30b5\u30fc\u30d0\u30fc \u2192 \u30af\u30e9\u30a4\u30a2\u30f3\u30c8<\/td>\n<td>**101 Switching Protocols**<\/td>\n<td>\u300c\u5207\u308a\u66ff\u3048OK\u300d\u306e\u5408\u56f3<\/td>\n<\/tr>\n<tr>\n<td>3.<\/td>\n<td>**\u4ee5\u964d**<\/td>\n<td><\/td>\n<td>**TCP\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u306f\u305d\u306e\u307e\u307e**\u3001\u901a\u4fe1\u30d7\u30ed\u30c8\u30b3\u30eb\u3060\u3051WebSocket\u306b\u79fb\u884c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3053\u306e\u4e00\u9023\u306e\u52d5\u4f5c\u306b\u304a\u3044\u3066\u3001**TCP\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u305d\u306e\u3082\u306e\u306f\u5207\u65ad\u3055\u308c\u305a\u3001\u30dd\u30fc\u30c8\u756a\u53f7\u3082\u5909\u308f\u308a\u307e\u305b\u3093\u3002**\u5358\u306b\u3001\u305d\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u4e0a\u3067\u6d41\u308c\u308b\u30c7\u30fc\u30bf\u306e\u30eb\u30fc\u30eb\uff08\u30d7\u30ed\u30c8\u30b3\u30eb\uff09\u3060\u3051\u304c\u5909\u308f\u308b\u306e\u3067\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3084\u30eb\u30fc\u30bf\u306f\u3001\u6700\u521d\u306b\u78ba\u7acb\u3055\u308c\u305f\u300cHTTP\uff0880\u756a\/443\u756a\uff09\u306e\u901a\u4fe1\u3067\u3042\u308b\u300d\u3068\u3044\u3046\u8a8d\u8b58\u3092\u4fdd\u3063\u305f\u307e\u307e\u3001\u305d\u306e\u5f8c\u306e WebSocket \u306e\u30c7\u30fc\u30bf\u3082\u7d20\u901a\u3057\u3055\u305b\u307e\u3059\u3002\u3053\u308c\u304c\u3001WebSocket\u304c\u300cHTTP\u3092**\u4e2d\u7d99**\uff08\u30c8\u30f3\u30cd\u30eb\uff09\u3057\u3066\u3044\u308b\u300d\u3068\u8a00\u308f\u308c\u308b\u6240\u4ee5\u3067\u3042\u308a\u3001\u300c\u8a2d\u5b9a\u5909\u66f4\u304c\u5c11\u306a\u304f\u6e08\u3080\u300d\u3068\u3044\u3046\u30e1\u30ea\u30c3\u30c8\u306e\u6839\u62e0\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>3. \u306a\u305c\u4ed6\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u4f7f\u308f\u305a\u901a\u4fe1\u3067\u304d\u308b\u306e\u304b \u2014 \u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u901a\u904e\u6027\u3068\u306e\u95a2\u4fc2<\/h2>\n<p>WebSocket \u304c HTTP \u3068\u540c\u3058\u30dd\u30fc\u30c8\uff08\u6a19\u6e96\u3067 80 \u756a\u3001HTTPS \u3067 443 \u756a\uff09\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u306e\u6700\u5927\u306e\u30e1\u30ea\u30c3\u30c8\u306f\u3001**\u300c\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\uff08FW\uff09\u3084\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u6a5f\u5668\u306e\u8a2d\u5b9a\u5909\u66f4\u304c\u4e0d\u8981\u306b\u306a\u308b\u300d**\u70b9\u306b\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u70b9\u304c\u3001\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13\u306a\u3069\u306e\u554f\u984c\u3067\u983b\u7e41\u306b\u554f\u308f\u308c\u308b\u6838\u5fc3\u3067\u3059\u3002<\/p>\n<h3>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5883\u754c\u306b\u304a\u3051\u308b\u300c\u30dd\u30fc\u30c8\u306e\u58c1\u300d<\/h3>\n<p>\u4f01\u696d\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3084\u591a\u304f\u306e\u516c\u5171 Wi-Fi \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3067\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u78ba\u4fdd\u306e\u305f\u3081\u3001**HTTP\uff0880\u756a\uff09\u3068 HTTPS\uff08443\u756a\uff09\u4ee5\u5916\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3078\u306e\u901a\u4fe1\u3092\u53b3\u3057\u304f\u5236\u9650\u30fb\u30d6\u30ed\u30c3\u30af**\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u4e0d\u6b63\u306a\u901a\u4fe1\u3084\u30de\u30eb\u30a6\u30a7\u30a2\u304c\u52dd\u624b\u306b\u5916\u90e8\u3068\u901a\u4fe1\u3059\u308b\u306e\u3092\u9632\u3050\u305f\u3081\u3067\u3059\u3002<\/p>\n<p>\u3082\u3057 WebSocket \u304c\u5225\u306e\u5c02\u7528\u30dd\u30fc\u30c8\uff08\u4f8b\uff1a9000\u756a\uff09\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u3068\u3057\u305f\u3089\u3001\u30b7\u30b9\u30c6\u30e0\u7ba1\u7406\u8005\u306f\u30eb\u30fc\u30bf\u3084\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306b\u300c9000\u756a\u30dd\u30fc\u30c8\u3082\u8a31\u53ef\u3059\u308b\u300d\u3068\u3044\u3046\u4f8b\u5916\u30eb\u30fc\u30eb\u3092**\u5fc5\u305a\u8ffd\u52a0**\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u4f5c\u696d\u306f\u30b3\u30b9\u30c8\u3068\u624b\u9593\u304c\u304b\u304b\u308a\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ea\u30b9\u30af\u3082\u5897\u5927\u3055\u305b\u307e\u3059\u3002<\/p>\n<h3>\u8a31\u53ef\u3055\u308c\u305f\u300c\u30c8\u30f3\u30cd\u30eb\u300d\u3092\u6d41\u7528\u3059\u308b<\/h3>\n<p>WebSocket \u306f\u3001\u4ee5\u4e0b\u306e\u30ed\u30b8\u30c3\u30af\u3067\u3053\u306e\u300c\u30dd\u30fc\u30c8\u306e\u58c1\u300d\u3092\u56de\u907f\u3057\u307e\u3059\u3002<\/p>\n<ol>\n<li>**\u901a\u4fe1\u306e\u958b\u59cb**\uff1aWeb \u30d6\u30e9\u30a6\u30b6\uff08\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\uff09\u304c\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u304c\u3059\u3067\u306b\u8a31\u53ef\u3057\u3066\u3044\u308b 80\u756a\uff08\u307e\u305f\u306f 443\u756a\uff09\u5b9b\u3066\u306b HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308a\u307e\u3059\u3002<\/li>\n<li>**FW \u306e\u8a8d\u8b58**\uff1a\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u3001\u3053\u306e\u901a\u4fe1\u3092\u300c\u901a\u5e38\u306e HTTP \/ HTTPS \u901a\u4fe1\u3067\u3042\u308b\u300d\u3068\u8a8d\u8b58\u3057\u3001\u30d6\u30ed\u30c3\u30af\u305b\u305a\u306b\u901a\u904e\u3055\u305b\u307e\u3059\u3002<\/li>\n<li>**\u30d7\u30ed\u30c8\u30b3\u30eb\u5207\u308a\u66ff\u3048**\uff1a\u901a\u904e\u5f8c\u3001\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u9593\u3067\u300c\u30d7\u30ed\u30c8\u30b3\u30eb\u3092 WebSocket \u306b\u5207\u308a\u66ff\u3048\u308b\uff08Upgrade\u3059\u308b\uff09\u300d\u624b\u7d9a\u304d\u3092\u884c\u3044\u307e\u3059\u3002**\u3053\u306e\u5207\u308a\u66ff\u3048\u306f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u90e8\uff08\u30b5\u30fc\u30d0\u30fc\u3068\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u9593\uff09\u3067\u884c\u308f\u308c\u308b**\u305f\u3081\u3001\u4e2d\u9593\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u305d\u306e\u5f8c\u306e\u901a\u4fe1\u304c WebSocket \u306b\u5909\u308f\u3063\u305f\u3053\u3068\u3092\u6c17\u306b\u3057\u307e\u305b\u3093\uff08\u307e\u305f\u306f\u691c\u77e5\u3067\u304d\u307e\u305b\u3093\uff09\u3002<\/li>\n<li>**\u7d99\u7d9a\u901a\u4fe1**\uff1aWebSocket \u30c7\u30fc\u30bf\u306f\u3001\u8a31\u53ef\u3055\u308c\u305f 80\/443 \u30dd\u30fc\u30c8\u306e**\u65e2\u5b58\u306e TCP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3**\u306b\u4e57\u308a\u7d9a\u3051\u3066\u3044\u308b\u305f\u3081\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u5f15\u304d\u7d9a\u304d\u7d20\u901a\u3057\u3055\u305b\u307e\u3059\u3002<\/li>\n<\/ol>\n<p>\u3053\u306e\u300c\u8a31\u53ef\u3055\u308c\u3066\u3044\u308b\u30dd\u30fc\u30c8\u3092\u5229\u7528\u3057\u3066\u901a\u4fe1\u3092\u958b\u59cb\u3057\u3001\u305d\u306e\u4e2d\u3067\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u5207\u308a\u66ff\u3048\u308b\u300d\u3068\u3044\u3046\u52d5\u4f5c\u3053\u305d\u304c\u3001**\u300c\u8ffd\u52a0\u8a2d\u5b9a\u4e0d\u8981\u300d**\u306e\u76f4\u63a5\u7684\u306a\u7406\u7531\u3067\u3059\u3002<\/p>\n<h2>4. WebSocket\u306e\u4e2d\u7d99\u3068\u901a\u5e38\u306e\u201c\u30d7\u30ed\u30ad\u30b7\u4e2d\u7d99\u201d\u3068\u306e\u9055\u3044\u3092\u5fdc\u7528\u60c5\u5831\u30ec\u30d9\u30eb\u3067\u6bd4\u8f03<\/h2>\n<p>WebSocket \u304c\u884c\u3046\u300c\u4e2d\u7d99\uff08\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\uff09\u300d\u306f\u3001\u901a\u4fe1\u7d4c\u8def\u306e\u9014\u4e2d\u306b\u4ecb\u5728\u3059\u308b**\u30d7\u30ed\u30ad\u30b7\u30b5\u30fc\u30d0\u30fc**\u304c\u884c\u3046\u4e00\u822c\u7684\u306a\u300c\u4e2d\u7d99\u300d\u3068\u306f\u3001\u52d5\u4f5c\u306e\u672c\u8cea\u304c\u7570\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3001\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13\u306b\u304a\u3051\u308b\u30d7\u30ed\u30ad\u30b7\u554f\u984c\u3078\u306e\u5bfe\u7b56\u306b\u3082\u7e4b\u304c\u308a\u307e\u3059\u3002<\/p>\n<h3>\u901a\u5e38\u306e\u30d7\u30ed\u30ad\u30b7\u30b5\u30fc\u30d0\u30fc\u306b\u3088\u308b\u4e2d\u7d99<\/h3>\n<p>\u901a\u5e38\u306e**\u30d5\u30a9\u30ef\u30fc\u30c9\u30d7\u30ed\u30ad\u30b7**\uff08\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u5916\u90e8\u30b5\u30fc\u30d0\u30fc\u306e\u9593\u306b\u5165\u308b\uff09\u3084**\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7**\uff08Web\u30b5\u30fc\u30d0\u30fc\u306e\u524d\u306b\u5165\u308b\uff09\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u53d6\u308a\u3001\u305d\u308c\u3092**\u30b5\u30fc\u30d0\u30fc\u3078\u4e2d\u7d99\u3057\u76f4\u3059**\u306e\u304c\u5f79\u5272\u3067\u3059\u3002<\/p>\n<ul>\n<li>**\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u5207\u65ad\u3068\u518d\u63a5\u7d9a:** \u30d7\u30ed\u30ad\u30b7\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u306e TCP \u30bb\u30c3\u30b7\u30e7\u30f3\u3092**\u4e00\u65e6\u7d42\u4e86**\u3055\u305b\u3001\u30b5\u30fc\u30d0\u30fc\u3068**\u65b0\u305f\u306b** TCP \u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u78ba\u7acb\u3057\u76f4\u3059\uff08\u3042\u308b\u3044\u306f\u63a5\u7d9a\u30d7\u30fc\u30eb\u304b\u3089\u518d\u5229\u7528\u3059\u308b\uff09\u3053\u3068\u304c\u4e00\u822c\u7684\u3067\u3059\u3002\u3064\u307e\u308a\u3001\u901a\u4fe1\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u9014\u4e2d\u3067\u300c\u30d0\u30c8\u30f3\u30bf\u30c3\u30c1\u300d\u3055\u308c\u307e\u3059\u3002<\/li>\n<li>**\u30dd\u30fc\u30c8\u306e\u5909\u66f4\u53ef\u80fd\u6027:** \u30d7\u30ed\u30ad\u30b7\u306b\u3088\u3063\u3066\u306f\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u53d6\u308b\u30dd\u30fc\u30c8\uff08\u4f8b: 80\u756a\uff09\u3068\u3001\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3057\u76f4\u3059\u30dd\u30fc\u30c8\uff08\u4f8b: 8080\u756a\uff09\u304c\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n<h3>WebSocket \u306e\u4e2d\u7d99\uff08\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\uff09\u3068\u306e\u6c7a\u5b9a\u7684\u306a\u9055\u3044<\/h3>\n<p>WebSocket \u306e\u4e2d\u7d99\u306f\u3001TCP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u518d\u78ba\u7acb\u305b\u305a\u3001\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u5207\u308a\u66ff\u3048\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u6bd4\u8f03\u9805\u76ee<\/th>\n<th>WebSocket \u306e\u4e2d\u7d99\uff08\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\uff09<\/th>\n<th>\u901a\u5e38\u306e\u30d7\u30ed\u30ad\u30b7\u306b\u3088\u308b\u4e2d\u7d99<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>**\u901a\u4fe1\u5c64**<\/td>\n<td>L7 (HTTP\u4e0a)<\/td>\n<td>L7 (\u5225\u30bb\u30c3\u30b7\u30e7\u30f3\u3068\u3057\u3066\u51e6\u7406)<\/td>\n<\/tr>\n<tr>\n<td>**TCP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3**<\/td>\n<td>**\u5207\u65ad\u30fb\u518d\u78ba\u7acb\u3057\u306a\u3044** (Upgrade\u3067\u7d99\u7d9a\u5229\u7528)<\/td>\n<td>**\u591a\u304f\u306e\u5834\u5408\u3001\u5207\u65ad\u30fb\u518d\u78ba\u7acb\u3055\u308c\u308b** (\u30bb\u30c3\u30b7\u30e7\u30f3\u304c\u5206\u304b\u308c\u308b)<\/td>\n<\/tr>\n<tr>\n<td>**\u30dd\u30fc\u30c8\u306e\u6271\u3044**<\/td>\n<td>\u540c\u3058\u30dd\u30fc\u30c8\u756a\u53f7\u3092**\u4f7f\u3044\u7d9a\u3051\u308b** (80\/443)<\/td>\n<td>\u30dd\u30fc\u30c8\u304c\u5909\u308f\u308b\u53ef\u80fd\u6027\u304c\u3042\u308b (\u4f8b: 80 \u2192 8080)<\/td>\n<\/tr>\n<tr>\n<td>**\u901a\u4fe1\u65b9\u5411**<\/td>\n<td>\u53cc\u65b9\u5411\uff08\u5168\u4e8c\u91cd\uff09<\/td>\n<td>\u4e3b\u306b\u5358\u65b9\u5411\u306e\u30ea\u30af\u30a8\u30b9\u30c8\/\u30ec\u30b9\u30dd\u30f3\u30b9<\/td>\n<\/tr>\n<tr>\n<td>**\u9069\u7528\u7bc4\u56f2**<\/td>\n<td>Web\u30a2\u30d7\u30ea\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u901a\u4fe1<\/td>\n<td>\u8ca0\u8377\u5206\u6563\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u3001\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u7d50\u8ad6\uff1a<\/strong> \u30d7\u30ed\u30ad\u30b7\u304c\u901a\u4fe1\u30bb\u30c3\u30b7\u30e7\u30f3\u3092**\u7ba1\u7406\u30fb\u4e2d\u7d99**\u3059\u308b\u306e\u306b\u5bfe\u3057\u3001WebSocket \u306f**\u65e2\u5b58\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u81ea\u4f53\u3092\u53cc\u65b9\u5411\u306b\u5909\u8cea**\u3055\u305b\u3066\u300c\u30c8\u30f3\u30cd\u30eb\u300d\u3068\u3057\u3066\u5229\u7528\u3059\u308b\u3001\u3068\u3044\u3046\u70b9\u304c\u6c7a\u5b9a\u7684\u306a\u9055\u3044\u3067\u3059\u3002<\/p>\n<h2>5. \u300c\u540c\u3058\u30dd\u30fc\u30c8\u3067\u6e08\u3080\u300d\u3068\u306f\u3069\u3046\u3044\u3046\u610f\u5473\u304b \u2014 \u4e2d\u7d99\u6a5f\u80fd\u306e\u672c\u8cea\u3068\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u901a\u904e\u306e\u6839\u62e0<\/h2>\n<p>\u3053\u308c\u307e\u3067\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u5b66\u3093\u3060\u5185\u5bb9\u3092\u3001\u8a66\u9a13\u5bfe\u7b56\u306e\u89b3\u70b9\u304b\u3089\u300cWebSocket\u306e\u4e2d\u7d99\u6a5f\u80fd\u306e\u672c\u8cea\u300d\u3068\u3057\u3066\u518d\u5b9a\u7fa9\u3057\u3001\u77e5\u8b58\u3092\u5b9a\u7740\u3055\u305b\u307e\u3059\u3002<\/p>\n<h3>\u672c\u8cea\u306e\u518d\u78ba\u8a8d\uff1a\u30dd\u30fc\u30c8\u3067\u306f\u306a\u304f\u300c\u63a5\u7d9a\u300d\u3092\u518d\u5229\u7528<\/h3>\n<p>WebSocket \u306e\u7279\u5fb4\u3092\u554f\u3046\u8a66\u9a13\u554f\u984c\u3067\u300c\u540c\u3058\u30dd\u30fc\u30c8\u3092\u5229\u7528\u3059\u308b\u304b\u3089\u300d\u3068\u3044\u3046\u9078\u629e\u80a2\u304c\u51fa\u3066\u304d\u305f\u969b\u3001\u5358\u306b\u300c80\u756a\u3068443\u756a\u3092\u4f7f\u3046\u300d\u3068\u7406\u89e3\u3057\u3066\u3044\u308b\u3060\u3051\u3067\u306f\u4e0d\u5341\u5206\u3067\u3059\u3002\u672c\u8cea\u306f\u3001**\u78ba\u7acb\u6e08\u307f\u306e TCP \u63a5\u7d9a\uff08\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\uff09\u3092\u3001\u30d7\u30ed\u30c8\u30b3\u30eb\u5909\u66f4\u5f8c\u3082\u5207\u308a\u66ff\u3048\u305a\u306b\u4f7f\u3044\u7d9a\u3051\u308b**\u70b9\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n<ol>\n<li>**\u65b0\u3057\u3044\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u5b9a\u7fa9\u304c\u4e0d\u8981:** WebSocket \u306f TCP\/IP \u306e\u4e0a\u3067\u52d5\u4f5c\u3059\u308b\u65b0\u3057\u3044\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u901a\u4fe1\u306e\u521d\u671f\u6bb5\u968e\u3092 HTTP \u3068\u3057\u3066\u632f\u308b\u821e\u3046\u305f\u3081\u3001\u65e2\u5b58\u306e\u901a\u4fe1\u30eb\u30fc\u30eb\uff08\u30dd\u30fc\u30c880\/443\u306f\u8a31\u53ef\uff09\u3092\u7834\u308a\u307e\u305b\u3093\u3002<\/li>\n<li>**\u30d7\u30ed\u30c8\u30b3\u30eb\u5909\u66f4\u306e\u307f:** HTTP Upgrade \u306f\u3001**\u78ba\u7acb\u6e08\u307f\u306e\u901a\u4fe1\u8def**\u306e\u300c\u4e2d\u8eab\u306e\u8a00\u8a9e\u300d\u3092\u5909\u3048\u308b\u624b\u7d9a\u304d\u3067\u3042\u308a\u3001\u300c\u65b0\u3057\u3044\u901a\u4fe1\u8def\uff08\u65b0\u3057\u3044\u30dd\u30fc\u30c8\uff09\u3092\u4f5c\u308b\u300d\u624b\u7d9a\u304d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/li>\n<\/ol>\n<h3>\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u901a\u904e\u6027\u306e\u6839\u62e0\u3092\u6574\u7406<\/h3>\n<p>\u3053\u306e\u4e2d\u7d99\u6a5f\u80fd\u306e\u672c\u8cea\u304c\u3042\u308b\u304b\u3089\u3053\u305d\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u901a\u904e\u3067\u304d\u307e\u3059\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u8981\u7d20<\/th>\n<th>\u52d5\u4f5c<\/th>\n<th>\u7d50\u8ad6<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>**\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb (FW)**<\/td>\n<td>TCP \u63a5\u7d9a\u306e\u958b\u59cb\uff08\u30cf\u30f3\u30c9\u30b7\u30a7\u30a4\u30af\uff09\u3092\u76e3\u8996\u3057\u3001\u30dd\u30fc\u30c880\/443\u304c\u8a31\u53ef\u3055\u308c\u3066\u3044\u308b\u304b\u5224\u65ad\u3059\u308b\u3002<\/td>\n<td>HTTP \u901a\u4fe1\u3068\u3057\u3066\u958b\u59cb\u3055\u308c\u308b\u305f\u3081\u3001FW \u306f\u8a31\u53ef\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>**Upgrade \u306e\u5b9f\u884c**<\/td>\n<td>FW \u306e\u5185\u5074\u306b\u3042\u308b\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u30fc\u306e\u9593\u3067\u884c\u308f\u308c\u308b\u3002<\/td>\n<td>FW \u306f\u3001\u5185\u90e8\u3067\u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u5207\u308a\u66ff\u308f\u3063\u305f\u3053\u3068\u3092\u691c\u77e5\u3067\u304d\u306a\u3044\uff08\u307e\u305f\u306f\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u5358\u4f4d\u3067\u306f\u6c17\u306b\u3057\u306a\u3044\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td>**FW \u306e\u5f79\u5272**<\/td>\n<td>**\u901a\u4fe1\u958b\u59cb\u6642**\u306b\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u898b\u3066\u8a31\u53ef\/\u30d6\u30ed\u30c3\u30af\u3092\u6c7a\u5b9a\u3059\u308b\u3002<\/td>\n<td>\u4e00\u5ea6\u8a31\u53ef\u3055\u308c\u305f\u5f8c\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u306e**\u9014\u4e2d\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\u5909\u66f4**\u306f\u3001\u57fa\u672c\u7684\u306b\u306f\u95a2\u77e5\u3057\u306a\u3044\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u3064\u307e\u308a\u3001WebSocket \u306e\u4e2d\u7d99\u6a5f\u80fd\u3068\u306f\u3001\u300c\u30dd\u30fc\u30c8\u3092\u6d41\u7528\u3057\u3066\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3092\u9a19\u3059\u300d\u6280\u8853\u3067\u306f\u306a\u304f\u3001\u300cTCP\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3068\u3044\u3046**\u7269\u7406\u7684\u306a\u63a5\u7d9a\u306f\u5909\u3048\u305a**\u3001\u305d\u306e\u4e0a\u3067\u306e**\u8ad6\u7406\u7684\u306a\u901a\u4fe1\u30d7\u30ed\u30c8\u30b3\u30eb\u3060\u3051\u3092\u5207\u308a\u66ff\u3048\u308b**\u3053\u3068\u3067\u3001\u8a2d\u5b9a\u5909\u66f4\u3068\u3044\u3046\u624b\u9593\u3092\u56de\u907f\u3059\u308b\u300d**\u5408\u7406\u7684**\u306a\u6280\u8853\u306a\u306e\u3067\u3059\u3002<\/p>\n<h2>6. \u4e2d\u7d99\u6a5f\u80fd\u306e\u5fdc\u7528\u4f8b \u2014 HTTP\u3092\u30c8\u30f3\u30cd\u30eb\u5316\u3057\u975eHTTP\u901a\u4fe1\u3092\u901a\u3059\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n<p>WebSocket \u306e\u300c\u65e2\u5b58\u306e HTTP \u30dd\u30fc\u30c8\u3092\u5229\u7528\u3057\u3066\u3001\u7570\u306a\u308b\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u30c7\u30fc\u30bf\u3092\u53cc\u65b9\u5411\u306b\u6d41\u3059\u300d\u3068\u3044\u3046\u4e2d\u7d99\uff08\u30c8\u30f3\u30cd\u30eb\uff09\u6a5f\u80fd\u306f\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0Web\u30a2\u30d7\u30ea\u4ee5\u5916\u306b\u3082\u5fdc\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u5fdc\u7528\u6280\u8853\u306f\u300c\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\u300d\u3068\u3057\u3066\u77e5\u3089\u308c\u3001\u7279\u5b9a\u306e\u901a\u4fe1\u3092\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5236\u9650\u304b\u3089\u56de\u907f\u3055\u305b\u305f\u3044\u5834\u5408\u306b\u6709\u52b9\u3067\u3059\u3002<\/p>\n<h3>\u975eWeb\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u300cHTTP\u306e\u4e2d\u8eab\u300d\u3068\u3057\u3066\u6d41\u3059<\/h3>\n<p>WebSocket \u306f\u672c\u6765\u3001Web\u30d6\u30e9\u30a6\u30b6\u3068\u30b5\u30fc\u30d0\u30fc\u9593\u306e\u901a\u4fe1\u306e\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u305d\u306e\u30c8\u30f3\u30cd\u30eb\u3068\u3057\u3066\u306e\u80fd\u529b\u3092\u4f7f\u3048\u3070\u3001**Web\u3068\u306f\u7121\u95a2\u4fc2\u306e\u30d7\u30ed\u30c8\u30b3\u30eb**\u3092 HTTP \u306e\u901a\u8def\u306b\u4e57\u305b\u3066\u904b\u3076\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<ul>\n<li>**SSH over WebSocket (\u4f8b: wetty):**<br \/>\n        \u30bb\u30ad\u30e5\u30a2\u306a\u30ea\u30e2\u30fc\u30c8\u63a5\u7d9a\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u3042\u308b SSH\uff08Secure Shell\uff09\u306f\u3001\u901a\u5e38 22\u756a\u30dd\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u3053\u306e 22\u756a\u30dd\u30fc\u30c8\u304c\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3067\u30d6\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u308b\u74b0\u5883\u306f\u5c11\u306a\u304f\u3042\u308a\u307e\u305b\u3093\u3002<br \/>\n        \u3053\u308c\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u3001SSH \u306e\u30c7\u30fc\u30bf\u3092 WebSocket \u306e\u30da\u30a4\u30ed\u30fc\u30c9\uff08\u4e2d\u8eab\uff09\u3068\u3057\u3066\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u3001\u8a31\u53ef\u3055\u308c\u3066\u3044\u308b 80\u756a\u3084 443\u756a\u30dd\u30fc\u30c8\u3092\u901a\u3058\u3066\u30b5\u30fc\u30d0\u30fc\u306b\u9001\u4fe1\u3057\u307e\u3059\u3002\u30b5\u30fc\u30d0\u30fc\u5074\u3067\u306f\u3001WebSocket \u306e\u30c8\u30f3\u30cd\u30eb\u304b\u3089 SSH \u30c7\u30fc\u30bf\u3092\u53d6\u308a\u51fa\u3057\u3001SSH \u30b5\u30fc\u30d0\u30fc\u3078\u6e21\u3059\u3068\u3044\u3046\u51e6\u7406\u3092\u884c\u3044\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001**Web\u30d6\u30e9\u30a6\u30b6\u3060\u3051\u3067SSH\u63a5\u7d9a**\u304c\u5b9f\u73fe\u3057\u307e\u3059\u3002<\/li>\n<li>**VNC over WebSocket (\u4f8b: noVNC):**<br \/>\n        \u30ea\u30e2\u30fc\u30c8\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u63a5\u7d9a\u306b\u4f7f\u308f\u308c\u308b VNC (Virtual Network Computing) \u3082\u3001\u540c\u69d8\u306b\u5c02\u7528\u306e\u30dd\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u3053\u308c\u3082 WebSocket \u306e\u30c8\u30f3\u30cd\u30eb\u306b\u4e57\u305b\u308b\u3053\u3068\u3067\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306e\u5236\u9650\u3092\u6c17\u306b\u305b\u305a\u3001Web\u30d6\u30e9\u30a6\u30b6\u7d4c\u7531\u3067\u30ea\u30e2\u30fc\u30c8\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u3092\u5229\u7528\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<h3>\u5fdc\u7528\u60c5\u5831\u30fb\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3068\u3057\u3066\u306e\u8996\u70b9<\/h3>\n<p>\u3053\u306e\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\u6280\u8853\u306f\u3001\u5229\u4fbf\u6027\u3092\u9ad8\u3081\u308b\u4e00\u65b9\u3067\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u8ab2\u984c\u3082\u751f\u3058\u3055\u305b\u307e\u3059\u3002\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u300c80\u756a\/443\u756a\u306f Web \u901a\u4fe1\u300d\u3068\u5224\u65ad\u3057\u3066\u8a31\u53ef\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u5b9f\u969b\u306b\u306f\u305d\u306e\u4e2d\u3067 SSH \u3084 VNC \u3068\u3044\u3063\u305f**\u5371\u967a\u306a\u53ef\u80fd\u6027\u3092\u6301\u3064\u901a\u4fe1**\u304c\u884c\u308f\u308c\u3066\u3044\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u304b\u3089\u3067\u3059\u3002<\/p>\n<p>\u4eca\u65e5\u306e\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3084\u30d7\u30ed\u30ad\u30b7\u88fd\u54c1\u306b\u306f\u3001\u30d1\u30b1\u30c3\u30c8\u306e\u4e2d\u8eab\u3092\u8a73\u7d30\u306b\u691c\u67fb\u3059\u308b**\u30c7\u30a3\u30fc\u30d7\u30d1\u30b1\u30c3\u30c8\u30a4\u30f3\u30b9\u30da\u30af\u30b7\u30e7\u30f3 (DPI)** \u6a5f\u80fd\u304c\u642d\u8f09\u3055\u308c\u3064\u3064\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001HTTP Upgrade \u5f8c\u306b\u6d41\u308c\u308b\u30c7\u30fc\u30bf\u304c\u300c\u7d14\u7c8b\u306a WebSocket \u30d5\u30ec\u30fc\u30e0\u306a\u306e\u304b\u3001\u305d\u308c\u3068\u3082\u30c8\u30f3\u30cd\u30eb\u5316\u3055\u308c\u305f\u975e Web \u30d7\u30ed\u30c8\u30b3\u30eb\u306a\u306e\u304b\u300d\u3092\u5206\u6790\u3057\u3001\u4e0d\u6b63\u306a\u901a\u4fe1\u3092\u30d6\u30ed\u30c3\u30af\u3057\u3088\u3046\u3068\u3059\u308b\u5bfe\u7b56\u3082\u9032\u3093\u3067\u3044\u307e\u3059\u3002<\/p>\n<h2>7. \u307e\u3068\u3081 \u2014 WebSocket\u304c\u201c\u540c\u3058\u30dd\u30fc\u30c8\u3067\u6e08\u3080\u201d\u7406\u7531\u3068\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13\u306e\u653b\u7565<\/h2>\n<p>\u672c\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305fWebSocket\u306e\u300c\u4e2d\u7d99\u6a5f\u80fd\u300d\u306b\u3064\u3044\u3066\u3001\u305d\u306e\u672c\u8cea\u3092\u6539\u3081\u3066\u6574\u7406\u3057\u307e\u3059\u3002\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13\u306e\u5bfe\u7b56\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u7d50\u3073\u3064\u3051\u3066\u7406\u89e3\u3092\u6df1\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n<h3>\u4e2d\u7d99\u6a5f\u80fd\uff08\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0\uff09\u306e\u672c\u8cea<\/h3>\n<p>WebSocket \u304c**\u300c\u540c\u3058\u30dd\u30fc\u30c8\u3067\u901a\u4fe1\u3067\u304d\u308b\u300d**\u3068\u3044\u3046\u306e\u306f\u3001\u4ee5\u4e0b\u306e\u6280\u8853\u8981\u7d20\u304c\u7d44\u307f\u5408\u308f\u3055\u3063\u3066\u5b9f\u73fe\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<ol>\n<li>**\u63a5\u7d9a\u306e\u958b\u59cb:** \u901a\u5e38\u306e HTTP\uff0880\u756a\/443\u756a\uff09\u3068\u3057\u3066 TCP \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u78ba\u7acb\u3059\u308b\u3002<\/li>\n<li>**\u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u5207\u308a\u66ff\u3048:** HTTP \u30d8\u30c3\u30c0\u5185\u306e <code>Connection: Upgrade<\/code> \u30ea\u30af\u30a8\u30b9\u30c8\u306b\u5bfe\u3057\u3001\u30b5\u30fc\u30d0\u30fc\u304c <code>101 Switching Protocols<\/code> \u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u8fd4\u3057\u3001**\u901a\u4fe1\u8def\u306f\u305d\u306e\u307e\u307e\u306b**\u30d7\u30ed\u30c8\u30b3\u30eb\u3092 WebSocket \u3078\u3068\u6607\u683c\u3055\u305b\u308b\uff08**HTTP Upgrade**\uff09\u3002<\/li>\n<li>**\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u901a\u904e\u6027:** \u63a5\u7d9a\u958b\u59cb\u6642\u306b\u8a31\u53ef\u3055\u308c\u305f\u30dd\u30fc\u30c8\uff0880\/443\uff09\u306e\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u7dad\u6301\u3059\u308b\u305f\u3081\u3001\u30eb\u30fc\u30bf\u3084\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306f\u3001\u305d\u306e\u5f8c\u306e WebSocket \u306b\u3088\u308b\u53cc\u65b9\u5411\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u901a\u4fe1\u3092\u30d6\u30ed\u30c3\u30af\u305b\u305a\u3001**\u8a2d\u5b9a\u5909\u66f4\u306a\u3057\u3067\u901a\u904e**\u3055\u305b\u308b\u3002<\/li>\n<\/ol>\n<p>\u3053\u308c\u304c\u3001WebSocket \u304c\u65b0\u3057\u3044\u30dd\u30fc\u30c8\u3092\u958b\u304f\u3053\u3068\u306a\u304f\u3001HTTP \u306e\u901a\u8def\u3092\u300c\u53cc\u65b9\u5411\u30c8\u30f3\u30cd\u30eb\u300d\u3068\u3057\u3066\u518d\u5229\u7528\u3059\u308b**\u4e2d\u7d99\u6a5f\u80fd**\u306e\u6838\u5fc3\u3067\u3059\u3002<\/p>\n<h3>\u5fdc\u7528\u60c5\u5831\u6280\u8853\u8005\u8a66\u9a13 \u5bfe\u7b56\u30ad\u30fc\u30ef\u30fc\u30c9<\/h3>\n<p>\u3053\u306e\u30c6\u30fc\u30de\u3092\u78ba\u5b9f\u306b\u5f97\u70b9\u6e90\u306b\u3059\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u305d\u306e\u610f\u5473\u3092\u6b63\u78ba\u306b\u7d50\u3073\u3064\u3051\u307e\u3057\u3087\u3046\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th>\u30ad\u30fc\u30ef\u30fc\u30c9<\/th>\n<th>\u610f\u5473\u5408\u3044\u3068\u91cd\u8981\u6027<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>**HTTP Upgrade**<\/td>\n<td>\u30d7\u30ed\u30c8\u30b3\u30eb\u3092 HTTP \u304b\u3089 WebSocket \u306b\u5207\u308a\u66ff\u3048\u308b\u547d\u4ee4\u3002\u4e2d\u7d99\u6a5f\u80fd\u306e\u6280\u8853\u7684\u306a\u30b9\u30bf\u30fc\u30c8\u5730\u70b9\u3002<\/td>\n<\/tr>\n<tr>\n<td>**101 Switching Protocols**<\/td>\n<td>\u30b5\u30fc\u30d0\u304c Upgrade \u8981\u8acb\u3092\u53d7\u7406\u3057\u305f\u3053\u3068\u3092\u793a\u3059 HTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9\u3002<\/td>\n<\/tr>\n<tr>\n<td>**\u5168\u4e8c\u91cd\u901a\u4fe1**<\/td>\n<td>\u78ba\u7acb\u5f8c\u306e WebSocket \u901a\u4fe1\u306e\u6027\u8cea\u3002\u53cc\u65b9\u5411\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3092\u53ef\u80fd\u306b\u3059\u308b\u3002<\/td>\n<\/tr>\n<tr>\n<td>**\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u901a\u904e\u6027**<\/td>\n<td>\u540c\u3058\u30dd\u30fc\u30c8\uff0880\/443\uff09\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u8a2d\u5b9a\u5909\u66f4\u306a\u3057\u3067\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5883\u754c\u3092\u8d8a\u3048\u3089\u308c\u308b\u6027\u8cea\u3002<\/td>\n<\/tr>\n<tr>\n<td>**\u30c8\u30f3\u30cd\u30ea\u30f3\u30b0**<\/td>\n<td>\u65e2\u5b58\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\uff08HTTP\uff09\u306e\u4e2d\u306b\u3001\u5225\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\uff08WebSocket\u3084SSH\u306a\u3069\uff09\u306e\u30c7\u30fc\u30bf\u3092\u5305\u307f\u8fbc\u3093\u3067\u904b\u3076\u6280\u8853\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>WebSocket\u306e\u4ed5\u7d44\u307f\u306f\u3001Web\u958b\u767a\u306e\u5229\u4fbf\u6027\u3060\u3051\u3067\u306a\u304f\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3084\u30d7\u30ed\u30c8\u30b3\u30eb\u6280\u8853\u306e\u7406\u89e3\u5ea6\u3092\u6e2c\u308b\u4e0a\u3067\u91cd\u8981\u3067\u3059\u3002\u672c\u8a18\u4e8b\u3067\u5f97\u305f\u77e5\u8b58\u3092\u3001\u305c\u3072\u8a66\u9a13\u5bfe\u7b56\u3084\u5b9f\u52d9\u306b\u6d3b\u304b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300cWebSocket\u306f\u3001HTTP\u3068\u540c\u3058\u30dd\u30fc\u30c8\uff0880\u756a\u3084443\u756a\uff09\u3092\u4f7f\u3048\u308b\u304b\u3089\u4fbf\u5229\u3060\u300d\u3068\u3001IT\u8cc7\u683c\u8a66\u9a13\u3084\u6280\u8853\u89e3\u8aac\u8a18\u4e8b\u3067\u3088\u304f\u8a00\u308f\u308c\u307e\u3059\u3002\u78ba\u304b\u306b\u305d\u306e\u901a\u308a\u3067\u3059\u304c\u3001\u306a\u305c\u65b0\u3057\u3044\u30d7\u30ed\u30c8\u30b3\u30eb\u306a\u306e\u306b\u65e2\u5b58\u306eHTTP\u30dd\u30fc\u30c8 &#8230; <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","columnck":"","stmeta_robots":"index, follow","st_titlewords":"","st_title_extra":"","st_keywords":"","st_description":"","st_display_ad_mark":"","st_display_ad_mark_hide":"","textcopyck":"","st_copyright":"","st_copyurl":"","eyecatch_set":"","st_youtube_url":"","st_youtube_eyecatch":"","headerwidget_set":"","updatewidget_set":"","kanrenwidget_set":"","ikkatuwidget_set":"","koukoku_set":"","auto_adsense_koukoku_set":"","st_redirect":"","st_redirect_url_as_canonical":"","st_redirect_pvm_do_not_track":"","post_data_updatewidget_set":"","st_post_header_under_bg":"","st_twitter_tag":"","affinger_note":"","rankdisplayck":"","st_head_code":"","st_footer_code":"","st_post_header_under_code":"","_st_toc_override":false,"_st_toc_settings":[]},"categories":[3],"tags":[5],"class_list":["post-6189","post","type-post","status-publish","format-standard","hentry","category-ipa","tag-5"],"_links":{"self":[{"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/posts\/6189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/comments?post=6189"}],"version-history":[{"count":0,"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/posts\/6189\/revisions"}],"wp:attachment":[{"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/media?parent=6189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/categories?post=6189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sky-peace.net\/certified\/wp-json\/wp\/v2\/tags?post=6189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}