?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
import "net/http/internal"
概述
索引
包內(nèi)部包含由net/http和net/http/httputil共享的HTTP內(nèi)部消息。
變量
func NewChunkedReader(r io.Reader) io.Reader
func NewChunkedWriter(w io.Writer) io.WriteCloser
type FlushAfterChunkWriter
chunked.go testcert.go
var ErrLineTooLong = errors.New("header line too long")
LocalhostCert是一個PEM編碼的TLS證書,其SAN IP為“127.0.0.1”和“:: 1”,將于1月29日16:00:00 2084 GMT到期。從src / crypto / tls生成:go run generate_cert.go --rsa-bits 1024 --host 127.0.0.1,:: 1,example.com --ca --start-date“Jan 1 00:00:00 1970 “--duration = 1000000h
var LocalhostCert = []byte(`-----BEGIN CERTIFICATE----- MIICEzCCAXygAwIBAgIQMIMChMLGrR+QvmQvpwAU6zANBgkqhkiG9w0BAQsFADAS MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB iQKBgQDuLnQAI3mDgey3VBzWnB2L39JUU4txjeVE6myuDqkM/uGlfjb9SjY1bIw4 iA5sBBZzHi3z0h1YV8QPuxEbi4nW91IJm2gsvvZhIrCHS3l6afab4pZBl2+XsDul rKBxKKtD1rGxlG4LjncdabFn9gvLZad2bSysqz/qTAUStTvqJQIDAQABo2gwZjAO BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw AwEB/zAuBgNVHREEJzAlggtleGFtcGxlLmNvbYcEfwAAAYcQAAAAAAAAAAAAAAAA AAAAATANBgkqhkiG9w0BAQsFAAOBgQCEcetwO59EWk7WiJsG4x8SY+UIAA+flUI9 tyC4lNhbcF2Idq9greZwbYCqTTTr2XiRNSMLCOjKyI7ukPoPjo16ocHj+P3vZGfs h1fIw3cSS2OolhloGw/XM6RWPWtPAlGykKLciQrBru5NAPvCMsb/I1DAceTiotQM fblo6RBxUQ== -----END CERTIFICATE-----`)
LocalhostKey是localhostCert的私鑰。
var LocalhostKey = []byte(`-----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDuLnQAI3mDgey3VBzWnB2L39JUU4txjeVE6myuDqkM/uGlfjb9 SjY1bIw4iA5sBBZzHi3z0h1YV8QPuxEbi4nW91IJm2gsvvZhIrCHS3l6afab4pZB l2+XsDulrKBxKKtD1rGxlG4LjncdabFn9gvLZad2bSysqz/qTAUStTvqJQIDAQAB AoGAGRzwwir7XvBOAy5tM/uV6e+Zf6anZzus1s1Y1ClbjbE6HXbnWWF/wbZGOpet 3Zm4vD6MXc7jpTLryzTQIvVdfQbRc6+MUVeLKwZatTXtdZrhu+Jk7hx0nTPy8Jcb uJqFk541aEw+mMogY/xEcfbWd6IOkp+4xqjlFLBEDytgbIECQQDvH/E6nk+hgN4H qzzVtxxr397vWrjrIgPbJpQvBsafG7b0dA4AFjwVbFLmQcj2PprIMmPcQrooz8vp jy4SHEg1AkEA/v13/5M47K9vCxmb8QeD/asydfsgS5TeuNi8DoUBEmiSJwma7FXY fFUtxuvL7XvjwjN5B30pNEbc6Iuyt7y4MQJBAIt21su4b3sjXNueLKH85Q+phy2U fQtuUE9txblTu14q3N7gHRZB4ZMhFYyDy8CKrN2cPg/Fvyt0Xlp/DoCzjA0CQQDU y2ptGsuSmgUtWj3NM9xuwYPm+Z/F84K6+ARYiZ6PYj013sovGKUFfYAqVXVlxtIX qyUBnu3X9ps8ZfjLZO7BAkEAlT4R5Yl6cGhaJQYZHOde3JEMhNRcVFMO8dJDaFeo f9Oeos0UUothgiDktdQHxdNEwLjQf7lJJBzV+5OtwswCWA== -----END RSA PRIVATE KEY-----`)
func NewChunkedReader(r io.Reader) io.Reader
NewChunkedReader返回一個新的chunkedReader,它在返回之前將從r讀出的數(shù)據(jù)轉(zhuǎn)換成HTTP“chunked”格式。chunkedReader在讀取最后的0長度塊時返回io.EOF。
普通應(yīng)用程序不需要NewChunkedReader。在閱讀響應(yīng)主體時,http包會自動解碼分塊。
func NewChunkedWriter(w io.Writer) io.WriteCloser
NewChunkedWriter返回一個新的chunkedWriter,在寫入w之前將寫入轉(zhuǎn)換為HTTP“分塊”格式。關(guān)閉返回的chunkedWriter將發(fā)送標(biāo)記流結(jié)束的最終0長度塊。
普通應(yīng)用程序不需要NewChunkedWriter。如果處理程序未設(shè)置Content-Length標(biāo)頭,則http包會自動添加分塊。在處理程序中使用newChunkedWriter會導(dǎo)致雙重組塊或使用Content-Length長度分塊,這兩者都是錯誤的。
FlushAfterChunkWriter從NewChunkedWriter的調(diào)用者發(fā)出信號,告知每個組塊后面應(yīng)該進行刷新。它由http.Transport代碼用來保持頭部和尾部的緩沖行為,但對于可能緩慢產(chǎn)生的請求體,在中間積極地清除塊。見問題6574。
type FlushAfterChunkWriter struct { *bufio.Writer}