6

Go http pkg はHijackerインターフェースを提供します。

コメントを確認すると、Hijack 呼び出しによって発信者が接続を引き継ぐことができた後、HTTP サーバー ライブラリは接続に対して他に何もしません。

1つのポート内でhttpリクエストと一般的なtcpインタラクティブの両方をサポートするために使用されているため、理解しています。そうですか?それは他の利点を持っていますか?

4

1 に答える 1

18

これは、TCP 接続の制御を引き継ぐことを意味します。TCP は汎用トランスポート プロトコルですが、HTTP は TCP 上のアプリケーション プロトコルです。OSI の 7 層モデルでは、TCP を第 4 層、HTTP を第7層と記述しています。

別のアプリケーション プロトコルを実装する必要がある場合、これはハイジャックの 1 つの使用例です。

または、キープアライブ接続を防止するなど、HTTP に特化した何かを行う必要がある場合、それは別のユース ケースです。

代替 Web アプリケーション プロトコルの例は、Google のSPDYです。これは、TCP 接続を直接作成するのではなく、既存の HTTP 接続をハイジャックする正当な理由でもあります。SPDY の場合、ブラウザはまず、SPDY も理解できることを示す「accept」ヘッダーを含む HTTP リクエストを作成します。これで、接続をハイジャックして、HTTP の代わりに SPDY を実装できるようになりました。

于 2013-06-27T08:33:14.063 に答える