Documentation
¶
Overview ¶
Package internal contains HTTP internals shared by net/http and net/http/httputil.
Index ¶
Constants ¶
const SniffLen = 512
The algorithm uses at most SniffLen bytes to make its decision.
Variables ¶
var ( ErrAbortHandler = errors.New("net/http: abort Handler") ErrBodyNotAllowed = errors.New("http: request method or response status code does not allow body") ErrRequestCanceled = errors.New("net/http: request canceled") ErrSkipAltProtocol = errors.New("net/http: skip alternate protocol") )
var ErrLineTooLong = errors.New("header line too long")
Functions ¶
func DetectContentType ¶
DetectContentType implements the algorithm described at https://mimesniff.spec.whatwg.org/ to determine the Content-Type of the given data. It considers at most the first 512 bytes of data. DetectContentType always returns a valid MIME type: if it cannot determine a more specific one, it returns "application/octet-stream".
func NewChunkedReader ¶
NewChunkedReader returns a new chunkedReader that translates the data read from r out of HTTP "chunked" format before returning it. The chunkedReader returns io.EOF when the final 0-length chunk is read.
NewChunkedReader is not needed by normal applications. The http package automatically decodes chunking when reading response bodies.
func NewChunkedWriter ¶
func NewChunkedWriter(w io.Writer) io.WriteCloser
NewChunkedWriter returns a new chunkedWriter that translates writes into HTTP "chunked" format before writing them to w. Closing the returned chunkedWriter sends the final 0-length chunk that marks the end of the stream but does not send the final CRLF that appears after trailers; trailers and the last CRLF must be written separately.
NewChunkedWriter is not needed by normal applications. The http package adds chunking automatically if handlers don't set a Content-Length header. Using newChunkedWriter inside a handler would result in double chunking or chunking with a Content-Length length, both of which are wrong.
Types ¶
type FlushAfterChunkWriter ¶
FlushAfterChunkWriter signals from the caller of NewChunkedWriter that each chunk should be followed by a flush. It is used by the net/http.Transport code to keep the buffering behavior for headers and trailers, but flush out chunks aggressively in the middle for request bodies which may be generated slowly. See Issue 6574.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
checksource
command
Command checksource checks formatting and vets production Go packages.
|
Command checksource checks formatting and vets production Go packages. |
|
syncstdlib
command
Command syncstdlib merges production HTTP sources from a pinned Go revision.
|
Command syncstdlib merges production HTTP sources from a pinned Go revision. |
|
Package fingerprint defines the wire configuration shared by the HTTP stack.
|
Package fingerprint defines the wire configuration shared by the HTTP stack. |
|
Package godebug is a lightweight replacement for the standard library's internal/godebug.
|
Package godebug is a lightweight replacement for the standard library's internal/godebug. |
|
Package headerparse provides Go's bounded MIME header parser without relying on runtime linknames.
|
Package headerparse provides Go's bounded MIME header parser without relying on runtime linknames. |
|
Package http2 implements the HTTP/2 protocol.
|
Package http2 implements the HTTP/2 protocol. |
|
Package profile represents a pprof profile as a directed graph.
|
Package profile represents a pprof profile as a directed graph. |
|
Package testcert contains a test-only localhost certificate.
|
Package testcert contains a test-only localhost certificate. |