This is a toy HTTP Host routing example, not production server configuration.

highlighted = computed this step

What this toy model checks

The trust boundary parses one request, recomputes the Host header, and recomputes the winning row.

recompute before rendering\text{recompute before rendering}
HTTP Host honesty boundaryThe virtual-host rows are recomputed from the parsed Host header.HTTP Host honesty boundary - Host net.example selects net-docssectionnamevaluecheckrequest linemethodGETparsedrequest linepath/booksparsedrequest lineversionHTTP/1.1parsedheaderHostnet.exampleexactheaderAccepttext/htmlexactvirtual hostHostnet.examplecompare rowsroutenet.examplenet-docsyes / yes / selectrouteshop.exampleshopno / no / skiproutedefaultfallbackyes / no / not reached

This is after DNS and TCP

DNS and TCP may get bytes to a server. The Host header can still choose which site that server serves.

one server, many names\text{one server, many names}
HTTP Host honesty boundaryThe virtual-host rows are recomputed from the parsed Host header.HTTP Host honesty boundary - Host net.example selects net-docssectionnamevaluecheckrequest linemethodGETparsedrequest linepath/booksparsedrequest lineversionHTTP/1.1parsedheaderHostnet.exampleexactheaderAccepttext/htmlexactvirtual hostHostnet.examplecompare rowsroutenet.examplenet-docsyes / yes / selectrouteshop.exampleshopno / no / skiproutedefaultfallbackyes / no / not reached

Honesty boundary

NOTE: toy HTTP request only; not TLS name indication, proxies, newer HTTP versions, routing policy, auth, cookies, or production web server config.

toy HTTP Host routing only\text{toy HTTP Host routing only}
HTTP Host honesty boundaryThe virtual-host rows are recomputed from the parsed Host header.HTTP Host honesty boundary - Host net.example selects net-docssectionnamevaluecheckrequest linemethodGETparsedrequest linepath/booksparsedrequest lineversionHTTP/1.1parsedheaderHostnet.exampleexactheaderAccepttext/htmlexactvirtual hostHostnet.examplecompare rowsroutenet.examplenet-docsyes / yes / selectrouteshop.exampleshopno / no / skiproutedefaultfallbackyes / no / not reached

Summary

The exact Host header chooses the exact virtual-host row; nothing is guessed in the browser or in client code.

Host header selects net-docs\text{Host header selects net-docs}
HTTP Host honesty boundaryThe virtual-host rows are recomputed from the parsed Host header.HTTP Host honesty boundary - Host net.example selects net-docssectionnamevaluecheckrequest linemethodGETparsedrequest linepath/booksparsedrequest lineversionHTTP/1.1parsedheaderHostnet.exampleexactheaderAccepttext/htmlexactvirtual hostHostnet.examplecompare rowsroutenet.examplenet-docsyes / yes / selectrouteshop.exampleshopno / no / skiproutedefaultfallbackyes / no / not reached