「Advisory Content-Length for HTTP」と自転車置場の話し

プロトコルの標準化の場では、自転車置き場(Bikeshed)の話がたまに出てきます。そのやり取りが面白かったので、提案仕様自体の解説にあわせて紹介します。

UUID version 6の提案仕様

先日IETFに提出された「UUID Format Update」という提案仕様の中でUUID version 6のフォーマットが言及されている。その背景と構造について簡単に解説する。

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

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

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

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

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とプロトコルの概要について紹介します。

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

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

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」と書かれている通り、動画上にコメントの…

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氏から提案されています。

Cross-Origin-Opener-Policyについて

Cross-Origin-Opener-Policy (COOP)は現在、ChromeやFirefoxで実装が進められている機能です。 Chrome: Implement Cross-Origin-Opener-Policy firefox: Implement Cross-Origin-Opener-Policy 仕様としては、whatwgで長らく議論がされており、おそらく仕様…

新しいWebの双方向通信 "WebTransport" について

関連記事 WebTransport over QUIC について - ASnoKaze blog WebTransport over HTTP/2 の仕様について - ASnoKaze blog WebTransport over QUIC について - ASnoKaze blog WebTransportという新しい双方向通信フレームワークの議論が始まっている。Googleの…

「Address-bound Token for QUIC」が面白い

FastlyのKazuhoさんが「Address-bound Token for QUIC」という提案仕様を出している、この中で出てくる "Sharing the Congestion Controller" という仕組みが非常に面白かったので、簡単に書いてみようと思う。 address-bound token この提案では、同一エン…

DigiCertによるプライベートアドレスの逆引き名の証明書誤発行

DigiCertの発行した証明書で、プライベートアドレス(192.168.1.)の逆引き名である「1.1.168.192.in-addr.arpa」を含む証明書が発行されていることが判明し話題となった。すでに、revokeされているが、下記の通りSANsに「1.1.168.192.in-addr.arpa」が含まれ…

HTTP/3で接続してVPNとして使うMASQUEプロトコルの提案仕様

20190910追記 同士より新しく出された、本提案の認証部分を切り出した「HTTP Transport Authentication」について書きました 提案仕様「HTTP Transport Authentication」について - ASnoKaze blog GoogleのDavid Schinazi氏が「The MASQUE Protocol」という…

HTTP over QUICと、その名称について (HTTP3について) *2019年9月更新

さてHTTP/3というと、なにか新しそうなHTTPのような気がしますが、まず基本的なHTTPのセマンティクスに変更はありません。GETやPOSTといったHTTPリクエストがあって、ステータスコードを持つレスポンスが返されます。ただその伝達方法がQUICトランスポートに…

JS Self-Profiling API とは

W3C Web Performance Workingの議事録に「JS Self-Profiling API」についての議論があったので簡単に眺めておく。ミーティングの「発表スライドはこちら」 JS Self-Profiling API いわゆるRUM(Real user monitoring)などと同様、実際のユーザ側でJavaScript…

ブラウザからシリアルポートにアクセスするSerial API

blink-devメーリングリストに「Intent to Implement: Serial API」として「Serial API」の実装に着手する旨の投稿がされている。この「Serial API」はW3CのWICGで議論がされており、ブラウザからシリアルポートにアクセス可能にする。3DプリンタやArdbinoな…

Chrome 71で検討されている iframeへのPermission Delegation

Webサイトがカメラや位置情報をアクセスする際にパーミッションを要求する場合がある。iframeで埋め込んだページでも同じようにパーミッション要求が行える。Chrome 71で導入が検討されている「Permission Delegation」では、iframeで埋め込まれたページでの…

DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様

20190821 追記 この提案は廃案されました https://mailarchive.ietf.org/arch/msg/doh/qkmhh93Id6XIngH3LJwp-HokH_Y DNS over HTTPS(DoH)の標準化が進められており、引き続き注目を集めている。 asnokaze.hatenablog.com一方で、DoHサーバをどのように見つけ…

Loading Signed Exchangesの仕様 (WebPackaging)

WebPackagingと呼ばれる仕組みが議論されているのは、以前このブログでも紹介したとおりである。 asnokaze.hatenablog.comこの仕組みは3つの仕様からなる。 Signed HTTP exchanges (参考: HTTP/2 クロスオリジン サーバプッシュを可能にする提案仕様 - ASnoK…

Clear-Site-Dataヘッダでブラウザに記憶されているデータを消す

Webブラウザは表示したサイトに関する様々なデータを記憶しています例えば cookie cache HTTP認証の情報 localStorage service worker registrations しかしサーバ側からこれらのデータを明示的に消すのは難しい場合があります。例えば、httpOnlyのcookieは…

TLS1.0, TLS1.1 の廃止する提案仕様

TLS1.3にRFC8446が採番され、RFCとして出るのを待つばかりになっている。一方で、「Deprecating TLSv1.0 and TLSv1.1」というTLS1.0とTLS1.1の廃止についての提案仕様がIETFで出ている。 TLS1.0, TLS1.1 廃止事情 カード情報セキュリティの国際統一基準 PCI …

Chromeが6週間毎にTLSバージョン番号を変更していくかもしれない

[修正] ossificationを骨化と訳してましたが、硬直化に変更しました TLS1.3の標準化が終わり、もうRFCとして出されるのを待つばかりになっている。そんなTLSワーキンググループのメーリングリストに、ChromiumやBoringSSLの開発に携わるDavid Benjamin氏よ…

Sec-Metadataヘッダについて

20190215追記 Sec-MetadataはFetch Metadataになりました asnokaze.hatenablog.com CSRF攻撃やクロスドメインリクエストに対してサイドチャネル攻撃をすることで、情報がリークすることがあります。それを防ぐために、どのようにHTTPリクエストが行われたか…

Web5Gとはなんなのか

W3Cでは、「Web5G」を掲げ5G及び関連するネットワークの進化に向けて、それにあわせたWeb標準技術・APIを模索しているようである。個人的な印象としては、ネットワークレイヤとWebアプリケーションレイヤが連携するようなイメージでいる。ネットワークを性能…