WebTransport over QUICのサンプルサーバを試してみる

"WebTransport over QUIC"の標準化及び、Chromiumでの実装が進んでいます。今回はクライントを書いて、Chromiumに同梱されているquic_transport_simple_serverと通信してみました。環境は Ubuntu 18.04です。WebTransport over QUICについては以前書いたブロ…

ダウンロードもMixed Contentsの対象となる話し

Chrome 81のデスクトップ版から、ダウンロードもMixed Contentsでブロック対象になる話があります。 これにより、https:// のページから http://でリンクされたファイルをダウロードしようとするとブラウザによってブロックされます。

HTTPメッセージに署名をするSignatureヘッダの標準化

HTTPメッセージに署名をするSignatureヘッダを定義する「Signing HTTP Messages」という仕様が提案されています。HTTPメッセージへの署名は、様々なところで行われていますが、それぞれ独自の方式で行われています。例えば、AWS APIを叩く際に利用する「Sign…

2019年 asnokaze 振り返り

今年も大晦日になりました。例年通り振り返ります。今年も全52記事と、たくさん書いた。一方でイベント類やアウトプットは少なかった気がする。来年頑張りたい。また今年特に印象深いのが、「ブログ、読んでますよー」とお声がけいただく機会が何度かあった…

HTTP/3をUDPロードバランサで分散するときの問題点 (AWS NLBで試してみた)

HTTP/3はQUICというトランスポートプロトコルを利用しています。QUICはUDPを利用していますが、QUIC自体はステートフルなプロトコルです。ステートフルなQUICを、QUICを解釈しないUDPロードバランサでバランシングしようとするにはいくつかの問題点がありま…

Crash/Deprecation/Intervention Reporting について

ブラウザがWebページを表示する際に発生したエラーを、任意のエンドポイントにレポートさせる「Reporting API」という仕様があります。Crash/Deprecation/Interventionという、エラータイプについて紹介します。

CookieのPriority属性の仕様

あまり知られていないがCookieにはPriority属性があります。最近ChromeがデベロッパーツールでPriority属性を表示するようになりました。そこで超簡単にだが仕様を紹介する。

HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14)

HTTPヘッダにリストや辞書形式のようなデータ構造の定義を与える「Structured Headers for HTTP」という提案仕様について。draft-14ベースで紹介。

HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様

HTTPリクエストは一度中断してしまうと、途中から再開することは出来ません。特に大きなファイルをアップロードしている場合は、最初からやり直すことになってしまいます。(ダウンロード自体は、Content-Rangeを指定することで部分的な取得が可能です)そこ…

ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ

トランスポートレイヤの性能を示すTransport-Infoレスポンスヘッダの提案仕様「The Transport-Info Response Header」が提出されています。この仕様の目的は、ブラウザでより詳しいトランスポートレイヤのパフォーマンスを取得することが目的となっており。H…

DoHを利用しないように指示するCanary domainの仕組み

DoHは重要ですが、利用が適切でない場合があります。Fifrefoxでは、そのネットワークでDoHを使用するか判断するにあたって「use-application-dns.net.」というCanary Domainを利用する。

QUIC, HTTP/3の標準化状況を確認したい (2019年11月版)

目次 Status The Plan Versions Extensions Applications Other Things More Information 関連記事 QUICは現在IETFで標準化が進められているトランスポートプロトコルであり、HTTP/3はそのQUICの上で効率よくHTTPのメッセージをやりとりするプロトコルです。…

ブラウザでIPマルチキャストを受信するMulticastReceiver API

WICGやIETFにおいて、ブラウザでIPマルチキャストのパケットを受信できるようにする「MulticastReceiver API」の議論があるようです。APIとプロトコルの概要について紹介します。

HTTP/3と新しいプライオリティ制御方式について

HTTP/3における優先度制御の話と、現在議論が行っ割れている新しく提案されているプロトコルバージョンに依存しない優先度制御について書きます。

キャッシュ情報を示す、Cache-Status レスポンスヘッダ

リクエストに対してx-cacheレスポンスヘッダでキャッシュにhitしたか示すCDNベンダーもあります。しかし、このx-cacheヘッダは各ベンダー独自のもので標準化されていませんでした。そこでCache-Statusというヘッダをちゃんと定義する「The Cache-Status HTTP…

「Binary Structured HTTP Headers」について

Fastlyの「Binary Structured HTTP Headers」という提案仕様がでています。Structured Headersの定義に基づいて、HTTPヘッダ値を直接バイナリで表現できるようになります。

NginxでHTTP/3が動いた (Cloudflareパッチ)

NginxをHTTP/3対応させるパッチがCloudflareから提供されました (CloudflareのHTTP/3ライブラリ Quicheを利用しています。現状ではHTTP/3ドラフト23版の対応になります) github.com基本的に、書いてるとおりにやればビルドできるのですが、無事HTTP/3しゃべ…

WebTransport over QUIC について

blink-devメーリングリストで、「Intent to Implement: QuicTransport」として、ChromeでのWebTransport over QUICの実装の機運が高まっている。プロトコルの概要について眺めていく。

ChromeのHTTP/3(ドラフト版)対応

Chrome CanaryがHTTP/3のドラフト版に対応していたので、簡単に動作を見ていきます。また、バージョンについても解説します。

QUICのコネクションマイグレーションについて

QUICのコネクションマイグレーションの流れ及び、セキュリティについて説明する。

HTTPリクエストのレートリミットを示すRateLimitレスポンスヘッダの提案仕様

先日提出された「RateLimit Header Fields for HTTP」では、HTTPレスポンスでHTTPリクエストのレートリミットに関する情報を通知するヘッダを定義します。

Mixed Content Level 2の仕様について

w3cのリポジトリにEditor’s Draftとして「Mixed Content Level 2」のページが加わっております。Mixed Content Level 1では表示できていた Mixed Content な画像,音声,動画もブロックされる可能性があります。

Double-keyed HTTP cache に関するメモ

201909027追記Fetchの仕様にプルリクが出されています HTTP cache partitioning by shivanigithub · Pull Request #943 · whatwg/fetch · GitHub whatwgでfetchに関して「Double-keyed HTTP cache」という議論がされています。github.comブラウザ側でも動き…

TCP/QUIC相互変換のポートフォワードツールを書いた

QUICをサポートしているアプリケーションプロトコル、実装が現状多くはない。 QUICの恩恵に預かるために、TCPとQUICを相互変換するポートフォワードツール 「t2q2t」 を書いた。(実態としてはただのProxy)

curlのHTTP/3実験実装を触ってみる

curlがHTTP/3の実験実装を公開したので試す。ライブラリとしてngtcp2を使う方法と、cloudflareのquicheを使う方法があるが今回はquicheを使う。

動画上にコメントを表示する"弾幕"の仕様

W3Cの「Chinese Web Interest Group」から、Unofficial Draftとして「弹幕规范」(英語版: Bullet Chatting Proposal)というドキュメントが公開されています。 仕様上でも「use cases and requirements for Danmaku」と書かれている通り、動画上にコメントの…

複数TLSコネクションの署名処理をまとめて行うBatch Signing

複数のTLSコネクションの署名処理ををまとめて1回で行ってしまう、「Batch Signing for TLS」という提案仕様がGoogleのDavid Benjaminさんより提案されています。

HTTPSで接続するための追加情報を格納するHTTPSSVCレコード

ESNIの鍵情報や、HTTP/2やHTTP/3で通信可能な事を示すAlt-Svc情報を通知するのに、DNSに新しくHTTPSSVCレコードを追加する仕様が提出されています。

TCP Slow Startを改善する HyStart++について

20190725追記 draft-01 で計算式に変更が入っています TCP Slow Startを改善する 「HyStart++: Modified Slow Start for TCP」というdraftがMicrosoftの方より提出されている。HyStart++はすでにWindowsで実装されている他、HyStartもLinuxのCubicに実装され…

提案仕様「HTTP Transport Authentication」について

HTTPレイヤにおいて、使用しているトランスポートレイヤの認証を行う「[HTTP Transport Authentication」という仕様がGoogleのDavid Schinazi氏から提案されています。