ホームページ > バックエンド開発 > Golang > Go 開発サーバーのリクエスト URL でホスト属性とスキーム属性が空白になるのはなぜですか?

Go 開発サーバーのリクエスト URL でホスト属性とスキーム属性が空白になるのはなぜですか?

DDD
リリース: 2024-12-13 15:48:25
オリジナル
174 人が閲覧しました

Why Are Host and Scheme Attributes Blank in My Go Development Server's Request URL?

開発サーバー上の空のホストとスキーム

Go アプリケーション開発の初期段階では、「hello, world」コードを使用してフレームワークに慣れる必要があります。一般。ただし、リクエスト URL から Host 属性と Scheme 属性にアクセスしようとすると、予期しない空白値が発生する可能性があります。なぜこのようなことが起こるのでしょうか?

Go の HTTP ライブラリは、リクエストからの生の URL を解析します。次のような相対パスを使用してサーバーにアクセスする場合:

GET / HTTP/1.1
Host: localhost:8080
ログイン後にコピー

URL オブジェクトの Host フィールドと Scheme フィールドは空のままです。

対照的に、プロキシからサーバーにアクセスする場合は、 、次のような絶対 URL が使用されます:

GET http://localhost:8080/ HTTP/1.1
Host: localhost:8080
ログイン後にコピー

これにより、これらが適切に入力されます。

HTTP ホストを取得するには、http.Request 構造体の Host 属性を直接使用することを検討してください。

さらに、URL のタイプ (相対または絶対) を判断するには、 IsAbs() メソッド:

isAbsoluteURL := r.URL.IsAbs()
ログイン後にコピー

このチェックは、2 つのシナリオを区別し、それに応じてコード ロジックをガイドするのに役立ちます。

以上がGo 開発サーバーのリクエスト URL でホスト属性とスキーム属性が空白になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート