RFC 9110
HTTP Semantics
Standards Track Obsoletes: RFC 7231, RFC 7232, RFC 7233, RFC 7235 June 2022
Abstract: HTTP Semantics (RFC 9110) defines the version-independent semantics of HTTP — methods, status codes, headers, content negotiation, and authentication. This is the definitive reference for HTTP behavior used in 5G SBI API design.
Canonical source: https://www.rfc-editor.org/rfc/rfc9110
| IETF Datatracker
1. Introduction
▶RFC 9110 consolidates and updates the HTTP semantics previously spread across RFC 7231-7235. It defines what HTTP methods mean, what status codes indicate, and how content negotiation works — independently of the wire format (HTTP/1.1, HTTP/2, HTTP/3).
5G SBI APIs follow RESTful HTTP semantics. TS 29.500 defines how each HTTP method maps to NF service operations, and NF API specifications (TS 29.5xx) define the specific resources, methods, and response codes.
2. HTTP Methods in 5G SBI
▶| Method | Safe | Idempotent | 5G SBI Usage |
|---|---|---|---|
| GET | Yes | Yes | Retrieve NF profile, subscription data, session info |
| POST | No | No | Create resource (PDU session, registration), custom operations |
| PUT | No | Yes | Full replace of resource (NF profile update) |
| PATCH | No | No | Partial update (JSON Merge Patch or JSON Patch) |
| DELETE | No | Yes | Remove resource (deregistration, session release) |
| HEAD | Yes | Yes | Resource existence check (rarely used in SBI) |
| OPTIONS | Yes | Yes | Capability discovery (rarely used in SBI) |
3. Status Codes in 5G SBI
▶| Code | Meaning | SBI Usage Example |
|---|---|---|
| 200 OK | Success (with body) | GET response, PATCH response |
| 201 Created | Resource created | POST creating PDU session, NF registration |
| 204 No Content | Success (no body) | DELETE confirmation, PUT without response body |
| 307 Temporary Redirect | Follow Location header | NF redirection during mobility |
| 400 Bad Request | Client syntax error | Malformed JSON, missing mandatory IE |
| 401 Unauthorized | Authentication failure | Invalid/missing OAuth token |
| 403 Forbidden | Authorization failure | NF not authorized for requested service |
| 404 Not Found | Resource missing | Unknown SUPI, expired session |
| 429 Too Many Requests | Rate limiting | NF overload control (with Retry-After) |
| 500 Internal Server Error | Server failure | NF internal processing error |
| 503 Service Unavailable | Temporarily unavailable | NF overloaded (with Retry-After) |
4. Content Negotiation
▶- Content-Type: application/json for SBI request/response bodies (TS 29.500 §5.2.2)
- Accept: application/json (consumer indicates expected response format)
- Content-Type for PATCH: application/merge-patch+json (JSON Merge Patch, RFC 7396)
- 3GPP custom headers: 3gpp-Sbi-Target-apiRoot, 3gpp-Sbi-Callback, 3gpp-Sbi-Discovery-*
5. Conditional Requests
▶- ETag/If-Match: Optimistic concurrency control for NF profile updates
- If-None-Match: Conditional GET to avoid unnecessary data transfer
- Last-Modified/If-Modified-Since: Time-based conditional requests
- 5G SBI uses ETag for NF registration and subscription resource management