ブラウザがurlを入力してから何が起こったの?
2983 ワード
1つのウェブサイトを入力することから、どのサービスが呼び出され、どのようなステップを経て、深い解析が行われます.www.googleと入力します.comを例に挙げます.
1.Client側
一般的に、ここでClientとは、ユーザ、すなわちbrowserブラウザを指す.ここではgoogleを入力します.comを例に挙げます.
1.1入力プロンプト
ブラウザでは、履歴アクセス、ブックマークなどの情報に基づいて入力アドバイスが表示されます.
また、デフォルトの検索エンジンの検索レコードに基づいて、最近の検索レコードに一致します.
1.2 url解析
不正なアドレスの場合は、デフォルトの検索エンジンに転送されます.たとえば、chromeを使用している場合は、url入力ボックスに検索したい内容を入力し、検索エンジンはキーワードに基づいて検索します.
HSTSリストセキュリティポリシーメカニズム、httpsの強行使用
1.3 DNS解析
ドメイン名はDNSを通じてipアドレスに変換され、この変換は主にヒューマンマシンインタラクションの友好型のためである.サイトにアクセスするために数字を覚えるのが好きな人はいません.DNSがやったことはあなたを入力したwww.googleです.comはコンピュータが理解できるIPアドレスに翻訳され、192.188.1.1に似ている.
1.3.1クエリー・プロシージャ
解析の過程で、ブラウザは近くから遠くまでキャッシュ情報があるかどうかを探します.すなわち、ドメイン名からアドレスへのマッピングが保存されていないかどうかを探します.クエリーの過程全体は以下のステップに分かれています.クエリーが到着すると、すぐに戻ってきて、これ以上実行しないことに注意してください.ブラウザの内部キャッシュを表示する ブラウザには、しばらくアクセスしたサイトのドメイン名アドレスのマッピングが保存されます.システムキャッシュ OSのキャッシュ.ブラウザはsystem callを発行し、オペレーティングシステムに対応するマッピングが保存されているかどうかを尋ねます.ルータキャッシュ、ISPキャッシュ ルータのキャッシュを問い合わせる.ルータキャッシュにマッピングが見つからない場合は、ISP(Internet Service Provider)で探しますローカルDNSサーバ ドメイン名サーバルートドメインサーバ->トップドメイン名サーバ 探し方はツリー構造に似ており、最下層の子葉から上へ遍歴し、より高度なドメイン名サーバに要求を続けています.このプロセスでは、リクエストとIPアドレスを携帯したパケットが送信され続け、clientとserverの間の複数のネットワークデバイスが正しいDNSサーバに到達するまで通過します.
2ネットワーク
正しいIPアドレスが見つかったら、接続の確立を開始します.接続の確立過程は一般的にTCPプロトコルを使用し、3回の握手で接続を確立します.
2.1 TCP接続
TCPで接続を確立します.ClientとServerの間でパケットを転送します.
2.1.1 IPパッケージsocket
2.1.2 TCP三回握手 Clientは、接続の確立を要求する.パケットは サーバーにオープンポートがあれば、接続を受け入れて確立できます.serverは Clientは、サーバからの応答を受信し、
1つの知乎に接続して、どうして3回握手して、2回あるいは4回ではありませんか?とても面白い例です.
2.1.3 TCP四回手を振る Clientは割り込み要求を開始し、 に送信する.サーバは要求を受信し、データがまだ送信されていない可能性があります.このときsocketを閉じるのではなく、 を知っていることを伝えます. Clientは が送信されます. Client受信後、 を閉じる.
3 Server
ここでは主にTCP接続の確立と切断の間に発生するいくつかのことを説明する.
TCP/IPはプロトコルグループであり、ネットワーク層と伝送層のプロトコルである.Clientはまず、サーバとのTCP接続(上記の3回の握手)を確立する.その後ClientはHTTPリクエストを送信し,ここではページを取得するためにGETリクエストをサーバに送信する.要求には、ブラウザID、ユーザデータヘッダ、接続ヘッダ(TCP接続を維持する必要があるかどうかなどの追加情報を含む)、クッキーから取得したデータなどが含まれる.
ServerはClientのRequestを受け取り、リクエストをRequest Handlerに渡し、リクエストを処理します(データベースからデータを検索し、データを処理し、Responseを構築します).構築が完了するとResponseが返されます.このResponseには状態情報が含まれていることに注意してください. 1 xx informational message only-情報 を含む2 xx success of some kind-成功情報 3 xx redirects the client to another URL-Clientを別のURL に移動 4 xx indicates an error on the client's part-Clientエンドエラー 5 xx indicates an error on the server's part-Serverエンドエラー 4ページレンダリング
ブラウザはResonseに従ってデータを返し、DOMツリーをレンダリングし、返されたデータをページに表示します.
Reference
https://github.com/sunyongjian/blog/issues/34
1.Client側
一般的に、ここでClientとは、ユーザ、すなわちbrowserブラウザを指す.ここではgoogleを入力します.comを例に挙げます.
1.1入力プロンプト
ブラウザでは、履歴アクセス、ブックマークなどの情報に基づいて入力アドバイスが表示されます.
また、デフォルトの検索エンジンの検索レコードに基づいて、最近の検索レコードに一致します.
1.2 url解析
不正なアドレスの場合は、デフォルトの検索エンジンに転送されます.たとえば、chromeを使用している場合は、url入力ボックスに検索したい内容を入力し、検索エンジンはキーワードに基づいて検索します.
HSTSリストセキュリティポリシーメカニズム、httpsの強行使用
1.3 DNS解析
ドメイン名はDNSを通じてipアドレスに変換され、この変換は主にヒューマンマシンインタラクションの友好型のためである.サイトにアクセスするために数字を覚えるのが好きな人はいません.DNSがやったことはあなたを入力したwww.googleです.comはコンピュータが理解できるIPアドレスに翻訳され、192.188.1.1に似ている.
1.3.1クエリー・プロシージャ
解析の過程で、ブラウザは近くから遠くまでキャッシュ情報があるかどうかを探します.すなわち、ドメイン名からアドレスへのマッピングが保存されていないかどうかを探します.クエリーの過程全体は以下のステップに分かれています.クエリーが到着すると、すぐに戻ってきて、これ以上実行しないことに注意してください.
2ネットワーク
正しいIPアドレスが見つかったら、接続の確立を開始します.接続の確立過程は一般的にTCPプロトコルを使用し、3回の握手で接続を確立します.
2.1 TCP接続
TCPで接続を確立します.ClientとServerの間でパケットを転送します.
2.1.1 IPパッケージsocket
2.1.2 TCP三回握手
SYN
を持っています.SYN
+ACK
を返し、Clientにあなたの要求を受け入れることができると伝えます.ACK
をサーバに送信します.接続が確立されました.1つの知乎に接続して、どうして3回握手して、2回あるいは4回ではありませんか?とても面白い例です.
2.1.3 TCP四回手を振る
FIN
をserver ACK
に返信し、ClientにFin_Wait
状態に入り、サーバ側のFIN
メッセージを待ち続けます.サーバ側の送信が完了すると、ClientにFIN
ACK
に返信し、接続3 Server
ここでは主にTCP接続の確立と切断の間に発生するいくつかのことを説明する.
TCP/IPはプロトコルグループであり、ネットワーク層と伝送層のプロトコルである.Clientはまず、サーバとのTCP接続(上記の3回の握手)を確立する.その後ClientはHTTPリクエストを送信し,ここではページを取得するためにGETリクエストをサーバに送信する.要求には、ブラウザID、ユーザデータヘッダ、接続ヘッダ(TCP接続を維持する必要があるかどうかなどの追加情報を含む)、クッキーから取得したデータなどが含まれる.
ServerはClientのRequestを受け取り、リクエストをRequest Handlerに渡し、リクエストを処理します(データベースからデータを検索し、データを処理し、Responseを構築します).構築が完了するとResponseが返されます.このResponseには状態情報が含まれていることに注意してください.
ブラウザはResonseに従ってデータを返し、DOMツリーをレンダリングし、返されたデータをページに表示します.
Reference
https://github.com/sunyongjian/blog/issues/34