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