github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/net/http/httputil/dump.go (about)

     1  // Copyright 2009 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package httputil
     6  
     7  import (
     8  	"github.com/shogo82148/std/net/http"
     9  )
    10  
    11  // DumpRequestOutは、outgoingのクライアントリクエスト用の [DumpRequest] のようなものです。これには、標準の [http.Transport] が追加するUser-Agentなど、任意のヘッダーが含まれます。
    12  func DumpRequestOut(req *http.Request, body bool) ([]byte, error)
    13  
    14  // DumpRequestは与えられたリクエストをHTTP/1.xのワイヤープレゼンテーションで返します。
    15  // クライアントのリクエストをデバッグするために、サーバーが使用するべきです。
    16  // 返されるプレゼンテーションは近似値です。初期リクエストの一部の詳細は、[http.Request] に解析される際に失われます。
    17  // 特にヘッダーフィールド名の順序と大文字小文字の情報が失われます。複数の値を持つヘッダーの値の順序は保持されます。
    18  // HTTP/2のリクエストは、元のバイナリ表現ではなく、HTTP/1.xの形式でダンプされます。
    19  //
    20  // bodyがtrueの場合、DumpRequestはbodyも返します。そのため、req.Bodyを消費し、同じバイトを返す新しい [io.ReadCloser] に置き換えます。
    21  // DumpRequestがエラーを返す場合、reqの状態は未定義です。
    22  //
    23  // [http.Request.Write] のドキュメントには、ダンプに含まれるreqのフィールドの詳細が記載されています。
    24  func DumpRequest(req *http.Request, body bool) ([]byte, error)
    25  
    26  // DumpResponseはDumpRequestと同様ですが、レスポンスをダンプします。
    27  func DumpResponse(resp *http.Response, body bool) ([]byte, error)