Hash request URIs before using them as a cache key #181
+5
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #132 notes that the caching middleware can generate keys which are too long when the input is a complex URL, leading to errors like
Errno::ENAMETOOLONG: File name too long @ rb_sysopen
. (The effective length limit depends on what cache driver you're using.)At the moment, we use the normalised request URI as the cache key. The fixes the issue by using
Digest::SHA1.hexdigest
to hash the URLs, giving us a constant 20-byte result.The trade-off of using a hash is that: