Home / Function/ parserRequestHeader() — fiber Function Reference

parserRequestHeader() — fiber Function Reference

Architecture documentation for the parserRequestHeader() function in hooks.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  7f2499fb_dfce_29cc_8d1f_64b8c4c1e120["parserRequestHeader()"]
  14cfc1be_1c8f_085d_1a4e_f0de9527aaba["hooks.go"]
  7f2499fb_dfce_29cc_8d1f_64b8c4c1e120 -->|defined in| 14cfc1be_1c8f_085d_1a4e_f0de9527aaba
  3ab0b2e2_48f6_4b95_606e_02e49d3669ca["unsafeRandString()"]
  7f2499fb_dfce_29cc_8d1f_64b8c4c1e120 -->|calls| 3ab0b2e2_48f6_4b95_606e_02e49d3669ca
  style 7f2499fb_dfce_29cc_8d1f_64b8c4c1e120 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

client/hooks.go lines 122–193

func parserRequestHeader(c *Client, req *Request) error {
	// Set HTTP method.
	req.RawRequest.Header.SetMethod(req.Method())

	// Merge headers from the client.
	for key, value := range c.header.All() {
		req.RawRequest.Header.AddBytesKV(key, value)
	}

	// Merge headers from the request.
	for key, value := range req.header.All() {
		req.RawRequest.Header.AddBytesKV(key, value)
	}

	// Set Content-Type and Accept headers based on the request body type.
	switch req.bodyType {
	case jsonBody:
		req.RawRequest.Header.SetContentType(applicationJSON)
		req.RawRequest.Header.Set(headerAccept, applicationJSON)
	case xmlBody:
		req.RawRequest.Header.SetContentType(applicationXML)
	case cborBody:
		req.RawRequest.Header.SetContentType(applicationCBOR)
	case formBody:
		req.RawRequest.Header.SetContentType(applicationForm)
	case filesBody:
		req.RawRequest.Header.SetContentType(multipartFormData)
		// If boundary is default, append a random string to it.
		if req.boundary == boundary {
			randStr, err := unsafeRandString(16)
			if err != nil {
				return fmt.Errorf("boundary generation: %w", err)
			}
			req.boundary += randStr
		}
		req.RawRequest.Header.SetMultipartFormBoundary(req.boundary)
	default:
		// noBody or rawBody do not require special handling here.
	}

	// Set User-Agent header.
	req.RawRequest.Header.SetUserAgent(defaultUserAgent)
	if c.userAgent != "" {
		req.RawRequest.Header.SetUserAgent(c.userAgent)
	}
	if req.userAgent != "" {
		req.RawRequest.Header.SetUserAgent(req.userAgent)
	}

	// Set Referer header.
	req.RawRequest.Header.SetReferer(c.referer)
	if req.referer != "" {
		req.RawRequest.Header.SetReferer(req.referer)
	}

	// Set cookies from the cookie jar if available.
	if c.cookieJar != nil {
		c.cookieJar.dumpCookiesToReq(req.RawRequest)
	}

	// Set cookies from the client.
	for key, val := range c.cookies.All() {
		req.RawRequest.Header.SetCookie(key, val)
	}

	// Set cookies from the request.
	for key, val := range req.cookies.All() {
		req.RawRequest.Header.SetCookie(key, val)
	}

	return nil
}

Domain

Subdomains

Defined In

Frequently Asked Questions

What does parserRequestHeader() do?
parserRequestHeader() is a function in the fiber codebase, defined in client/hooks.go.
Where is parserRequestHeader() defined?
parserRequestHeader() is defined in client/hooks.go at line 122.
What does parserRequestHeader() call?
parserRequestHeader() calls 1 function(s): unsafeRandString.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free