遂に最新版ChromeにHTTPのストリーミング送信がやって来た

37
nwtgck (ja) @nwtgck_ja

遂に最新版ChromeにHTTPのストリーミング送信がやって来た🎉 最大の魅力は純粋なHTTP通信なところ。curlを始め各言語の枯れた標準ライブラリとWebブラウザがシームレスに統合できる。 pic.twitter.com/28mq3q0viz

2022-08-31 08:39:05
nwtgck (ja) @nwtgck_ja

これを応用したSSHをHTTP上で実現する piping-ssh.nwtgck.org もこれからはflag不要で最新の安定版Chromeで使えるようになった scrapbox.io/nwtgck/SSH%E6%… pic.twitter.com/rjAGSRqLEP

2022-08-31 08:46:06
nwtgck (ja) @nwtgck_ja

リモートデスクトップ操作も同様の応用方法で実現している scrapbox.io/nwtgck/%E3%83%… pic.twitter.com/7YYKIzt40O

2022-08-31 08:48:04
nwtgck (ja) @nwtgck_ja

目指しているものは圧倒的な透明性。このPiping Serverを使ったポートフォワーディングはWeb標準の機能とcurlとncという非常に枯れて皆が信頼しよく広まった技術の組み合わせだけで実現している。 curl -sSN ppng.io/aaa | nc localhost 22 | curl -sSNT - ppng.io/bbb

2022-08-31 08:52:37
nwtgck (ja) @nwtgck_ja

なんと言ってもfetchの利用者的にはシンプルなところが良い。body に ReadableStream と duplex: 'half' を指定するだけ。 pic.twitter.com/nBAoqxPaK9

2022-08-31 09:04:21
拡大
nwtgck (ja) @nwtgck_ja

Chrome 85のorigin trialからの変更の注意点はサーバー側はHTTP/2, HTTP/3である必要があること。transfer-encoding: chunkedのリクエスト対応したHTTP/1.1サーバーに対する送信は実行時にエラーする。

2022-08-31 09:58:10