Home / Function/ parseCacheControlDirectives() — fiber Function Reference

parseCacheControlDirectives() — fiber Function Reference

Architecture documentation for the parseCacheControlDirectives() function in cache.go from the fiber codebase.

Function go FiberMiddleware Caching calls 1 called by 2

Entity Profile

Dependency Diagram

graph TD
  7bb90993_ff5b_fab9_386a_48b814aa152a["parseCacheControlDirectives()"]
  af95e058_7e86_ec88_42f0_cd294e342508["cache.go"]
  7bb90993_ff5b_fab9_386a_48b814aa152a -->|defined in| af95e058_7e86_ec88_42f0_cd294e342508
  76f49f0c_927d_0294_f6e3_8860aa88da2e["parseResponseCacheControl()"]
  76f49f0c_927d_0294_f6e3_8860aa88da2e -->|calls| 7bb90993_ff5b_fab9_386a_48b814aa152a
  27f304b5_9285_92cb_4e9d_3057235a1733["parseRequestCacheControl()"]
  27f304b5_9285_92cb_4e9d_3057235a1733 -->|calls| 7bb90993_ff5b_fab9_386a_48b814aa152a
  c66cadd8_8dfa_8564_6109_273f445a3b79["unquoteCacheDirective()"]
  7bb90993_ff5b_fab9_386a_48b814aa152a -->|calls| c66cadd8_8dfa_8564_6109_273f445a3b79
  style 7bb90993_ff5b_fab9_386a_48b814aa152a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/cache/cache.go lines 947–1007

func parseCacheControlDirectives(cc []byte, fn func(key, value []byte)) {
	for i := 0; i < len(cc); {
		// skip leading separators/spaces
		for i < len(cc) && (cc[i] == ' ' || cc[i] == ',') {
			i++
		}
		if i >= len(cc) {
			break
		}

		start := i
		for i < len(cc) && cc[i] != ',' {
			i++
		}
		partEnd := i
		for partEnd > start && cc[partEnd-1] == ' ' {
			partEnd--
		}

		keyStart := start
		for keyStart < partEnd && cc[keyStart] == ' ' {
			keyStart++
		}
		if keyStart >= partEnd {
			continue
		}

		keyEnd := keyStart
		for keyEnd < partEnd && cc[keyEnd] != '=' {
			keyEnd++
		}
		// Trim trailing spaces from key
		keyEndTrimmed := keyEnd
		for keyEndTrimmed > keyStart && cc[keyEndTrimmed-1] == ' ' {
			keyEndTrimmed--
		}
		key := cc[keyStart:keyEndTrimmed]

		var value []byte
		if keyEnd < partEnd && cc[keyEnd] == '=' {
			valueStart := keyEnd + 1
			for valueStart < partEnd && cc[valueStart] == ' ' {
				valueStart++
			}
			valueEnd := partEnd
			for valueEnd > valueStart && cc[valueEnd-1] == ' ' {
				valueEnd--
			}
			if valueStart <= valueEnd {
				value = cc[valueStart:valueEnd]
				// Handle quoted-string values per RFC 9111 Section 5.2
				if len(value) >= 2 && value[0] == '"' && value[len(value)-1] == '"' {
					value = unquoteCacheDirective(value)
				}
			}
		}

		fn(key, value)
		i++ // skip comma
	}
}

Subdomains

Frequently Asked Questions

What does parseCacheControlDirectives() do?
parseCacheControlDirectives() is a function in the fiber codebase, defined in middleware/cache/cache.go.
Where is parseCacheControlDirectives() defined?
parseCacheControlDirectives() is defined in middleware/cache/cache.go at line 947.
What does parseCacheControlDirectives() call?
parseCacheControlDirectives() calls 1 function(s): unquoteCacheDirective.
What calls parseCacheControlDirectives()?
parseCacheControlDirectives() is called by 2 function(s): parseRequestCacheControl, parseResponseCacheControl.

Analyze Your Own Codebase

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

Try Supermodel Free