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-codingheader valueConnectionheader value