The following is a summary of which HTTP fields/components are case sensitive.
https://misfra.me/2022/http-request-case-sensitivity/
I only recently learned that HTTP methods are case-sensitive. In order to save myself from future debugging headaches, I decided to do a quick search to see what else is case-sensitive.
This is what the RFC says. Real applications may treat things differently!
Case sensitive? | Component | Reference |
---|---|---|
✅ | HTTP version | RFC |
✅ | Method | RFC |
❌ | URI scheme | RFC |
❌ | URI host | RFC |
✅ | URI path, query, fragment | RFC |
❌ | Header field name | RFC |
✅ | Header field values | Not explicit in the RFC. See below for some exceptions. |
❌ | Transfer-coding header value | RFC |
❌ | Connection header value | RFC |
✅ | Body |
Summary
Case-sensitive:
- HTTP version
- Method
- URI path, query, fragment
- Header field values
- Body
Case-insensitive:
- URI scheme
- URI host
- Header field name
Transfer-coding
header valueConnection
header value