12.2 · HTTP versions, TLS, App Transport Security and certificate pinning

Most networking bugs are above the wire, but the wire explains the performance and security questions: how many connections, how fast to first byte, and who you are really talking to.

Mental model. HTTP versions decide how requests share a connection; TLS decides who you are talking to. Neither is something your app code usually touches, but both decide what is possible.

The protocols

HTTP/1.1, HTTP/2 and HTTP/3, and what changes for a client.

  1. How do HTTP/1.1, HTTP/2 and HTTP/3 differ, and what does that mean for an iOS client? 12.2.1 · L3
    HTTP/1.1 sends one request at a time per connection, so a page of many resources opens several connections in parallel (about six per host) and suffers…

Trust

TLS, App Transport Security and certificate pinning.

  1. How do TLS and App Transport Security protect a request, and what is certificate pinning, and why is it fraught? 12.2.2 · L5
    TLS gives a connection confidentiality, integrity and authentication of the server: the server presents a certificate chain, and the client verifies that it…

More in Networking