diff options
Diffstat (limited to 'draft-schanzen-gns.xml')
-rw-r--r-- | draft-schanzen-gns.xml | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml index 684ce83..f33fc77 100644 --- a/draft-schanzen-gns.xml +++ b/draft-schanzen-gns.xml | |||
@@ -3309,38 +3309,48 @@ Value Symbol Symbol | |||
3309 | <section> | 3309 | <section> |
3310 | <name>Virtual Hosting</name> | 3310 | <name>Virtual Hosting</name> |
3311 | <t> | 3311 | <t> |
3312 | HTTP virtual hosting and TLS Server Name Indication are common | 3312 | HTTP virtual hosting and TLS Server Name Indication are common |
3313 | use cases on the Web. | 3313 | use cases on the Web. |
3314 | The HTTP client such as a browser supplies a DNS name in the HTTP | 3314 | The HTTP client such as a browser supplies a DNS name in the HTTP |
3315 | "Host"-header or the TLS handshake, respectively. | 3315 | "Host"-header or the TLS handshake, respectively. |
3316 | This allows the HTTP server to serve the indicated virtual host | 3316 | This allows the HTTP server to serve the indicated virtual host |
3317 | with a matching TLS handshake. | 3317 | with a matching TLS handshake. |
3318 | Any resource record in GNS can be represented as a concatenation of | 3318 | The unambiguity of DNS names are a prerequisite of those use cases. |
3319 | of a GNS label and the zTLD of the zone. | 3319 | </t> |
3320 | While not human-readable, this property of GNS names can be | 3320 | <t> |
3321 | leveraged in order to facilitate the same use cases. | 3321 | GNS names are not globally unique. |
3322 | </t> | 3322 | But, any resource record in GNS can unambiguously be represented as a |
3323 | <t> | 3323 | concatenation of of a GNS label and the zTLD of the zone. |
3324 | While not human-readable, this property of GNS names can be | ||
3325 | leveraged in order to facilitate the same use cases. | ||
3326 | </t> | ||
3327 | <t> | ||
3324 | Consider the GNS name "www.example.gns" entered in a GNS-aware | 3328 | Consider the GNS name "www.example.gns" entered in a GNS-aware |
3325 | HTTP client. | 3329 | HTTP client. |
3326 | At first, "www.example.gns" is resolved using GNS yielding a record | 3330 | At first, "www.example.gns" is resolved using GNS yielding a record |
3327 | set. | 3331 | set. |
3328 | Then, the HTTP client first determines the virtual host as follows: | 3332 | Then, the HTTP client determines the virtual host as follows: |
3333 | </t> | ||
3334 | <t> | ||
3335 | If there is a LEHO record (<xref target="gnsrecords_leho"/>) in | ||
3336 | the record set, then the HTTP client uses the record value in the | ||
3337 | "Host"-header field of the HTTP request: | ||
3329 | </t> | 3338 | </t> |
3330 | <ol> | 3339 | <artwork name="" type="" align="left" alt=""><![CDATA[ |
3331 | <li>If there is a LEHO record (<xref target="gnsrecords_leho"/>) in | 3340 | GET / HTTP/1.1 |
3332 | the record set, then the HTTP client uses the record value in the | 3341 | Host: www.example.com |
3333 | "Host"-header field of the HTTP request. Example: | 3342 | ]]></artwork> |
3334 | "Host: www.example.com".</li> | 3343 | <t> |
3335 | <li> | ||
3336 | If there is no LEHO record in the record set, | 3344 | If there is no LEHO record in the record set, |
3337 | then the HTTP client tries to find the zone of the record | 3345 | then the HTTP client tries to find the zone of the record |
3338 | and translates the GNS name into an unabiguous | 3346 | and translates the GNS name into an unabiguous |
3339 | zTLD-representation before using it in the "Host"-header field of | 3347 | zTLD-representation before using it in the "Host"-header field of |
3340 | the HTTP request. Example: | 3348 | the HTTP request: |
3341 | "Host: www.000G0037FH3QTBCK15Y8BCCNRVWPV17ZC7TSGB1C9ZG2TPGHZVFV1GMG3W". | 3349 | </t> |
3342 | </li> | 3350 | <artwork name="" type="" align="left" alt=""><![CDATA[ |
3343 | </ol> | 3351 | GET / HTTP/1.1 |
3352 | Host: www.000G0037FH3QTBCK15Y8BCCNRVWPV17ZC7TSGB1C9ZG2TPGHZVFV1GMG3W | ||
3353 | ]]></artwork> | ||
3344 | <t> | 3354 | <t> |
3345 | In order to determine a canonical representation of the record with | 3355 | In order to determine a canonical representation of the record with |
3346 | a zTLD, at most two queries are required: | 3356 | a zTLD, at most two queries are required: |
@@ -3348,7 +3358,13 @@ Value Symbol Symbol | |||
3348 | a zone delegation record which would imply that the record set which | 3358 | a zone delegation record which would imply that the record set which |
3349 | was originally resolved is published under the apex label. | 3359 | was originally resolved is published under the apex label. |
3350 | If it does, the unique GNS name is simply the zTLD representation | 3360 | If it does, the unique GNS name is simply the zTLD representation |
3351 | of the delegated zone: "Host: 000G0037FH3QTBCK15Y8BCCNRVWPV17ZC7TSGB1C9ZG2TPGHZVFV1GMG3W". | 3361 | of the delegated zone: |
3362 | </t> | ||
3363 | <artwork name="" type="" align="left" alt=""><![CDATA[ | ||
3364 | GET / HTTP/1.1 | ||
3365 | Host: 000G0037FH3QTBCK15Y8BCCNRVWPV17ZC7TSGB1C9ZG2TPGHZVFV1GMG3W | ||
3366 | ]]></artwork> | ||
3367 | <t> | ||
3352 | If it does not, the unique GNS name is the concatenation of the | 3368 | If it does not, the unique GNS name is the concatenation of the |
3353 | label "www" and the zTLD representation of the zone as given in the | 3369 | label "www" and the zTLD representation of the zone as given in the |
3354 | example above. | 3370 | example above. |