タグ

ブックマーク / zenn.dev/satoken (3)

  • golangでHTTP3を試してみる

    はじめに つい先日、HTTP3がRFC9114として正式に発表されました。 RFC読むよりとりあえずパケット見る派なので、とりあえずコード書いて動かしてキャプチャしたいところです。 quic-goは http3 ディレクトリがあり、対応してそうなのでサンプルコードを書いてみました。 数日前にcommitが入っていて開発も活発そうですね。 サンプルのサーバ側コードを試す時はお手数ですが、opensslやmkcertコマンドなどでご自分で公開鍵&秘密鍵を生成してください。 クライアント まずはクライアントのコードを書いてみます。 go.docを見ると、RoundTrip という関数に *http.Request を渡すとHTTP3のクライアントコードになりそうです。 こんなコードになりました。 package main import ( "crypto/tls" "fmt" "github.c

    golangでHTTP3を試してみる
  • golangで作るTCPIPプロトコル

    はじめに とりあえずIT業界に入ったら読んでおけという名著はいろいろありますが、その中の1冊がマスタリングTCP/IP入門編でしょう。 僕も買ってはいたものの読むのを途中で挫折していたので、今回しっかり読んでTCP/IPを再勉強してみたいと思います。 マスタリングTCP/IPを読みながらその他わからんことはググりつつ、golangでTCPIPプロトコルそのものを自作してみます。 方針は以下のようにします。 ethernetから作る データのやり取りにnetパッケージは一切使わない (訂正、PCのIPやMacアドレスを取るのにだけ使用しますた) データのやり取りに使うのはsyscallのsendtoとrecvfromだけ socketはRAW_SOCKETを使う golangやネットワークについても初心者の駆け出しですので間違えや実装ミス、変なコードがあるかもですが、生暖かい目でよろしゅうお

    golangで作るTCPIPプロトコル
  • 雰囲気でOAuthを使っていたエンジニアがOAuthサーバ(RFC6749)を自作してみる

    はじめに Auth屋さんのやその他有識者のBlogなどを読むことで少しながらOAuthやOIDCの仕組みが理解できてきました。 そんななかで以下の記事が大変勉強になりました。 ↑の記事ではRubyで実装されているのですが、これを参考というかほぼ丸コピですがgolangで実装してみたいと思います。 コードは以下にあります。 仕様 OAuthサーバでは認可エンドポイントとトークンエンドポイントを実装する必要があります。 認可とトークンエンドポイントの2つに加えてユーザ認証を行うエンドポイントを作ります。 今回は元記事と同じようにFormに入力したユーザ&パスワードを受け取り確認します。 RFC6749に関する仕様は元記事の2.注意点と同じになるはずです。 「はずです」というのは恥ずかしながらまだ完全な理解に至っておらず今もRFCを読みながら答え合わせ中です。 ぜひ認識違いがあればご指摘くださ

    雰囲気でOAuthを使っていたエンジニアがOAuthサーバ(RFC6749)を自作してみる
  • 1