261

IT系のカンファレンスに参加した話など

技術書典5にいってきた。次は本だしてみたい

最後のほうにちょろっと参加しただけだったけど面白かった。 見たことのない情報に触れられるのがこういうところへ参加する意義だと思う。自作キーボードにちっちゃいハンドスピナーつけてたりとか、法律の話とか ただ、欲しかったメルカリの本は売り切れてた

なので次は自分も本を出したい。紙でなくてもいいみたいなので PDFで。

内容はurlにアドレスを入力してenterキーを押してからbrowserに表示するまでの道筋

実際わかっていないのでは?と思って とりあえず書く内容の概要をざっと書き出してみた

  • ブラウザの url入力フィールドにurlを入力し、 enterを押す!
  • エンターの信号がキーボードからusbをとおして
  • ドライバがenterの値に変換
  • enterの入力がOSからchromeに伝わる(よくわかってなさすぎ)
  • url入力フィールドに入力があることを検知?
  • 入力文字を取得
  • 入力文字をパースする
  • プロトコルを判定(https, httpで判断?)
  • ipなのか文字(なんていうんだっけ->domain名)を判定
  • urlをdnsに問い合わせ
  • 問い合わせまでになにすんだろわからん
    • dnsって下からだっけ?
    • dnsに答えが帰るまで問い合わせ
    • dnsってツリー?
  • パケット作成、ドメイン名を乗せる
  • 名前解決したらipaddressを保持
  • dnsからipに変換し、 ipをパケットに分割
    • ethに送るまでってだれが担当する?OS? Driver?
  • ethを通ってサーバにリクエストを投げる
  • 帰ってきたレスポンスをうける
  • ボディを取得
  • ボディのパース
  • htmlをchromeのパーサに渡す
  • chromeでパーサからごにょる
  • chromeのレンダから出力

まったくわかってないことがわかったので まずはreal world httpを読んでみよう

想定している環境 OS linux ブラウザ chrome