タグ

ブックマーク / asnokaze.hatenablog.com (12)

  • DNS名前解決エラーもネガティブキャッシュする提案 (RFC 9520) - ASnoKaze blog

    2023/12/23 追記: RFC 9520 になりました == 「Negative Caching of DNS Resolution Failures」という提案が、Verisignの方らによって提案されています。 DNSの名前解決の結果はつぎのいずれかです。 1) 要求されたデータを含む応答 2) 要求されたデータが存在しないことを示す応答 3) ネットワークエラーや、データ不整合などの、有用な情報が得られない(失敗) 今回の提案では、(3)のエラーについても最低5秒間ネガティブキャッシュするよう要求します(5分以上キャッシュしてはいけない)。 RFC2308 「Negative Caching of DNS Queries」では、サーバが落ちていたり接続できない場合に、オプショナルでキャッシュする事が記述されてはいます。 モチベーション 提案仕様のなかで、DNSのエラーが起こり、

    DNS名前解決エラーもネガティブキャッシュする提案 (RFC 9520) - ASnoKaze blog
    rryu
    rryu 2022/09/09
    DNSで障害が発生するとみんなが即座にリトライして余計にひどくなるという問題の対策なのか。
  • 40年越しにTCPの仕様(RFC793)が改訂される RFC9293 - ASnoKaze blog

    2022/08/09 追記 「RFC 9293 Transmission Control Protocol (TCP)」として正式なRFCが出ました TCPのコア部分の仕様は1981年に発行された「RFC793 TRANSMISSION CONTROL PROTOCOL」で標準化されています。 この、RFC793の改訂版となる「Transmission Control Protocol (TCP) Specification」は、2013年からIETFのTCPM WGで議論されてきましたが、4月4日にIESGによって承認されました(参考URL)。現在はRFC出版の準備に入っています(新しいRFC番号はこの後正式に決まります) www.ietf.org 改めてTCPの仕様を読みたい場合はこのドキュメントを読むのが良さそう。 概要 この改訂版の仕様(通称 rfc793bis)は、RFC793が

    40年越しにTCPの仕様(RFC793)が改訂される RFC9293 - ASnoKaze blog
    rryu
    rryu 2022/04/12
    RFCはupdated byでツリーが出来てしまうと全体を参照するのが大変になってくるのだが、それらをひとつにまとめようという感じっぽい。
  • ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog

    ブラウザから直接TCP・UDPで送受信する「Direct Sockets API」という仕組みが議論されています。 実験段階ですが、Chromeでは起動時にオプションを付けることでこの機能を有効にできます。今回はTCPの方で簡単に動作を見てみます。 Direct Sockets API Direct Sockets APIは、TCP・UDPで直接送受信可能にするAPIです。既存のアプリケーションプロトコル(SSHやIRC)、P2Pのような機能を実現可能になります。 もちろんセキュリティ上の問題もあるので、Chromeでは現状デフォルトでは有効になっていない機能です。 セキュリティ面についてはだいぶGithubリポジトリで議論されておりますので目を通すと良いでしょう。ローカルネットワークへの通信やSame-Origin-Policy(CORS)回避の話が上がっていますが、今回は細かくは紹介し

    ブラウザでTCPを直接送受信できるDirect Sockets APIについて - ASnoKaze blog
    rryu
    rryu 2022/01/04
    Fetch APIですら特定のポートにリクエストを送るのを防ぐという対策が入っているのに、任意の通信ができるようにして無事で済むとは思えないのだが…
  • 新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog

    新しいHTTPメソッドを定義する「The HTTP QUERY Method」という提案仕様が議論されています。 もともとは、SEARCHメソッドという呼び名が候補としてあげられていましたが、長い議論ののち、一旦QUERYと呼ぶ方向となっております。最終的なFixについては、この draft 02の公開とともに改めてコンセンサスを求めた後に行われます。 QUERYメソッド 「GETリクエストにボディを付けたいという」という質問は長らく有りました。しかし、GETやHEADリクエストでボディをつけることは非推奨となっています (参考URL)。 そのような要望のなかで、リクエストでボディを含められる冪等性の保証された新しいHTTPメソッドが検討されました。それがQUERYメソッドです。冪等性があるため、ブラウザやProxyは自動でリトライすることができます。(なお、POSTはセマンティクス上冪等

    新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
    rryu
    rryu 2021/11/10
    GETで送るにはちょっとだけ長すぎるのでやむなくPOSTで送るという場合があるのは分かるが、自動再送の問題だけならform要素の属性などで対応すべきな感じがする。プロキシが自動再送したい場合があるのかは分からない。
  • 0.0.0.0/8のIPアドレスなどを利用可能にする提案仕様 - ASnoKaze blog

    IPv4アドレスの枯渇すると言われ続けております。 「The IPv4 unicast extensions project」では、予約されているIPアドレスなどをユニキャストアドレスとして利用可能にし、4億1900万ものIPアドレスを追加することを謳っています。 実際、IETFで予約済みアドレスをユニキャストアドレスとして使用できるようにする提案を提出しています。 240.0.0.0/4 を利用可能にする提案 (draft-schoen-intarea-unicast-240) 0.0.0.0/8を利用可能にする提案 (0.0.0.0は除く) (draft-schoen-intarea-unicast-0) 127.1.0.0 ~ 127.255.255.255を利用可能にする提案 (draft-schoen-intarea-unicast-127) IPアドレスホスト部が0のものを利

    0.0.0.0/8のIPアドレスなどを利用可能にする提案仕様 - ASnoKaze blog
    rryu
    rryu 2021/11/09
    Class Eの実験用アドレスはこれだけ大きなアドレスブロックを使わないのはもったいないと思っていたが遂に手をつけるのか。まだまだ完全にはIPv6に置き変わらないということなのか…
  • 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

    IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv6 UUIDv6は128bit長で、UUIDv1と似てるフォーマットを取ります。 1582年10月15日(グレゴリオ暦)からの100ナノ秒単位で

    時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
    rryu
    rryu 2021/04/30
    時刻情報をそのまま入れれば時間順になるなと思ったら本当にそのまま入れる仕様だった。1582年10月15日からなのはグレゴリオ暦の開始日だからっぽいが、過去の時刻のUUIDを生成することはあるのだろうか。
  • Cookieの新しい属性、SameParty属性について - ASnoKaze blog

    ChromeCookieのSameParty属性の開発が進められている (コミット)。 現在のところ「SameParty cookie attribute explainer」に説明が書かれている。 今回は、CookieのSameParty属性について簡単にメモしていく。 背景 トラッキング対策、プライバシーの観点でサードパーティクッキーは制限する方向に進んでいる。その制限をSame Partyの場合に緩和する仕組みを提供するのがSameParty属性の話である。 例えば、同一主体により運営されているドメインの異なるサイト (例えば、google.co.jp, google.co.uk) 間においては、いわゆる(cross-site contextsで送られる)サードパーティクッキーを許可しようという話です。 もともとは、First-Party Setsを活用しSameSite属性にFi

    Cookieの新しい属性、SameParty属性について - ASnoKaze blog
  • POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog

    はじめに HTTPリクエストには冪等なものと非冪等なものがあります。 仕様上、GETやOPTIONSは冪等であり、同じリクエストであれば何度行っても問題ありません。そのため通信上エラーが起こっても自動的にリトライすることが出来ます。 一方で、POSTリクエストは冪等ではありません。同じリクエストでも複数回行うと、結果が変わってしまいます。投稿や課金APIであれば2重に処理されてしまいます。 POSTリクエスト中にタイムアウトが発生した時に、サーバに処理される前にタイムアウトしたのか、サーバが処理したあとにレスポンスを返そうとしたところでタイムアウトしたのかクライアントは区別できません。そのため、POSTリクエストを一概にリトライすることは出来ません。 そこで、リトライにより複数回同じPOSTリクエストを受け取っても、同じものと識別できるように識別子をHTTPリクエストに付加できるようにする

    POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
    rryu
    rryu 2020/11/19
    冪等性という名前は微妙だが、処理中のリクエストと同じリクエストを拒否する仕組みを標準化しておけばフレームワークやライブラリレベルで対応できるようになるということだと思う。
  • ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog

    ChromeがHTTP/2サーバプッシュの廃止を検討し始めている。またPreload + 103 Early Hintsの有効性について実験していく模様 背景 HTTP/2(RFC 7540) にはサーバプッシュという機能があります。これは、クライアントからのHTTPリクエストをまたずにサーバがHTTPレスポンスを先行して送ることが出来る機能です。 たとえば、index.htmlに画像1,2,3が含まれているようなページがあるとします。このindex.htmlへのリクエストを受け付けたサーバは、クライアントが画像1,2,3がを要求してくることを予測しサーバプッシュでこれらのリソースを送りつけることが来でます。(クライアント側から、そのリソースが不要であればサーバプッシュをキャンセルすることもできます) そうすることで、ページの表示を効率化出来ると考えられていました。 しかし、様々な議論の中

    ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
    rryu
    rryu 2020/11/13
    HTTP/2は優先度制御など複雑なのに役に立たなくて使われてない機能が多い感じがする。
  • HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-00) - ASnoKaze blog

    2019/12/17追記 draft-14ベースで記事を書き直しました。 (また、最新仕様では 名称が "Structured Field Values for HTTP" に変更されました) asnokaze.hatenablog.com 以下は古い記事です。 HTTPヘッダには、リストや辞書といった構造を表現するのに決まったやり方はありません。 HTTPヘッダ毎にシンタックスや構造が定義されており、そのためパーサーが再利用出来ません。 mnot氏とphk氏の共著で提出された「Structured Headers for HTTP」仕様では、HTTPヘッダに下記の構造を定義しパーサを再利用できるようします。また、新しいHTTPヘッダを標準化する際も個々別のシンタックス定義を不要にしています。 Numbers Strings Labels Parameterised Labels Bina

    HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-00) - ASnoKaze blog
    rryu
    rryu 2017/11/12
    現状のパーサーをある程度流用できるのが利点なのかな。
  • TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze blog

    TCP Fast Open TCP Fast Openと呼ばれる技術があり、RFC 7413として標準化されている。 このTCP Fast Openを使うと、一度コネクションを貼った相手とは、TCPの3ウェイハンドシェイク中にデータを送受信できるようになる。クライアントからSYNとともにデータを送信することで、実際にデータを送受信開始するまでの待ち時間が短縮できる。 Linuxではすでにクライアント/サーバ両方でTCP Fast Openを使用できる。 TCP Fast Openの闇 しかし、数年前よりこのTCP Fast Openには一部のネットワークで奇妙な振る舞いをすることが知られている。Appleの人が実際にデプロイした時に見つけたもので、IETFやNANOGにて報告されており、その時の資料は下記のとおりである Deploying TCP Fast Open in the wild

    TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze blog
    rryu
    rryu 2017/05/10
    ACK送ってないのにデータを送ってくる変なサーバ扱いされてパケット落とされるのか……
  • XSSを防ぐ新しいXSS-Protectionヘッダ - ASnoKaze blog

    evalとreportOnlyについて追記しました (2016/10/10) 2016/10/20 仕様名は以下の通りになりました。Anti-XSS Response-Time Uniqueness Requirement また、ヘッダ名は、XSS-Protectionヘッダではなく、ARTURヘッダとなっておりますが、また変更される可能性があります。 Googleの調査によると、CSPによるXSSの防止は現実的にデプロイの欠陥によりXSSの防止効果がないことを示しています。調査は「CSP Is Dead, Long Live CSP!」としてACMのカンファレンスで発表され、ペーパーも閲覧することができます。 9月に行われたW3C TPAC 2016のWebAppSecのミーティングで議論され、GoogleのMike West氏より新しくXSS Protectionという仕様が提案されて

    XSSを防ぐ新しいXSS-Protectionヘッダ - ASnoKaze blog
    rryu
    rryu 2016/10/09
    nonce付けるとか、完全に動的に出力する想定なんだな。
  • 1