DNS SRV Records for HTTPCisco Systems170 West Tasman DriveMailstop SJC-30San JoseCA95134USA+1 408 902-3341fluffy@cisco.comThis document specifies a new URI scheme called http+srv which uses a
DNS SRV lookup to locate a HTTP server. The http+srv scheme operates in
the same way as an http scheme but instead of the normal DNS lookup that
a http scheme would use, it first tries an DNS SRV lookup. This memo
also defines a https+srv scheme that operates in the same was as an
https URI but uses DNS SRV lookups.The draft is being discussed on the apps-discuss@ietf.org list.This documents and the information contained therein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.Web services often define APIs where software running on machine in a
data center acts as an HTTP client and performs some http transactions
to another HTTP server. For example, a portal such as Facebook can act
as a http client and call specific HTTP-based APIs on other http
servers. The reality of current networks is a large portion of the hosts
have NATed addresses and often can not run on port 80. This is likely to
become more common with the deployment of Carrier Grade NAT. DNS SRV
records allow a DNS lookup of a name like www.example.com to provide
both a port and the IP addresses of the HTTP server.This specification defines two new URI schemes, http+srv, and
https+srv which are like http and https respectively. When a http client
uses one of theses schemes to locate a web server, it starts by doing a
DNS SRV record lookup and if one is found, uses that result. If no SRV
record is found, it falls back to a DNS address (A or AAAA) record. The
specification does not update or modify HTTP in any way.It is not expected that most web browsers would support these schemes
for generic web use. It would instead be used for particular
applications using HTTP such as specific web APIs. These APIs would be
defined to require the use of this specification. In this situation, the
end user's web browser might not do the SRV lookup when it browsed to
the portal web pages, but the HTTP calls that the portal made out to
other sites to generate the content would use this mechanism. As such
architectures become more common, DNS SRV would allow many servers that
are just providing an API to run on ports other than 80 even though main
portal sites may still be running on the well known ports. Eventually,
web browsers may end up supporting these SRV lookups, as the
implementation is trivial and has very little downside.This technique is useful where users wish to run a web server behind
a NAT but cannot control which port the NAT will allocate for the
service. It is also useful where several users want to run different web
servers on the same machine. A third use case for HTTP SRV is a
situation in which all requests should be sent to a primary server, but
if that server is down, then requests should fall back to an alternative
server.The big open issue seems to be if one should just update the HTTP
scheme to do this SRV lookup and not create a new scheme. The 00 version
of this draft did that. A new scheme makes this somewhat unusable for
general web surfing while using the old scheme results in a very long
transition times where different clients resolve URLs in different
ways.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.Applications compliant with this specification MUST perform an SRV
lookup as specified in when resolving the
host portion of a http+srv or https+srv URI. As defined in the IANA port
numbers registry, the service names used are _http and _https
respectively. As described in RFC 2782, if no SRV record is present, the
resolution will fall back on using other DNS records that would be used
by a http scheme as defined in HTTP. The
rest of the http+srv URI is processed in the same way as an http URI in
RFC 2616 while the rest of a https+srv scheme URI is processed the same
way as a https URI as defined in .In the following example, the client will do a lookup on the URI,
which finds the SRV record that then points at the A record that points
at the IP address.In this case the client would form a TCP connection to
192.0.2.88:8080 then start TLS over that connection. Note that the
certificate in the TLS handshake would be matched to example.com as that
was the names used in the URI and it would not be matched to
host1.example.com.This specification registers two provisional URI schemes.http+srvprovisionalIdentical to http URI as defined in RFC 2616 but using the
'http+srv' protocol identifier in place of the 'http' protocol
identifierSee draft-jennings-http-srvNo special considerationsApplications which need to lookup http servers using DNS
SRVNone knownSame as http URI. See RFC 2616Cullen Jennings <fluffy@cisco.com>Cullen Jennings <fluffy@cisco.com>draft-jennings-http-srvRFC 3986RFC 2616https+srvprovisionalIdentical to http URI as defined in RFC 2818 but using the
'https+srv' protocol identifier in place of the 'https' protocol
identifierSee draft-jennings-http-srvNo special considerationsApplications which need to lookup http servers using DNS
SRVNone knownSame as https URI. See RFC 2818Cullen Jennings <fluffy@cisco.com>Cullen Jennings <fluffy@cisco.com>draft-jennings-http-srvRFC 3986RFC 2818This introduces no new security considerations beyond the common
usage of HTTP. It is analogous to DNS CNAME records that redirect
address records.Variants of this idea has been proposed by many people, including
Mark Andrews and Thor Kottelin in an internet draft in 2000. A related
draft discusses
selecting SCTP for HTTP.Some text came from various documents by Ted Hardie. Thanks to good
feedback from many people including Ted Hardie, S. Moonesamy, Cyrus
Daboo, Stefanos Harhalakis, Ray Bellis, John Klensin, and Eran
Hammer-Lahav.Key words for use in RFCs to Indicate
Requirement LevelsHarvard University1350 Mass. Ave.CambridgeMA 02138- +1 617 495 3864sob@harvard.edu
General
keywordIn many standards track documents several words are used to
signify the requirements in the specification. These words are
often capitalized. This document defines these words as they
should be interpreted in IETF documents. Authors who follow these
guidelines should incorporate this phrase near the beginning of
their document: The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described
in RFC 2119.Note that the force of these words is modified by the
requirement level of the document in which they are used.Hypertext Transfer Protocol --
HTTP/1.1Department of Information and
Computer ScienceUniversity of California, IrvineIrvineCA92697-3425+1(949)824-1715fielding@ics.uci.eduWorld Wide Web
ConsortiumMIT Laboratory for Computer Science, NE43-356545 Technology SquareCambridgeMA02139+1(617)258-8682jg@w3.orgCompaq Computer
CorporationWestern Research Laboratory250 University AvenuePalo AltoCA94305mogul@wrl.dec.comWorld Wide Web
ConsortiumMIT Laboratory for Computer Science, NE43-356545 Technology SquareCambridgeMA02139+1(617)258-8682frystyk@w3.orgXerox CorporationMIT Laboratory for Computer Science, NE43-3563333 Coyote Hill RoadPalo AltoCA94034masinter@parc.xerox.comMicrosoft
Corporation1 Microsoft WayRedmondWA98052paulle@microsoft.comWorld Wide Web
ConsortiumMIT Laboratory for Computer Science, NE43-356545 Technology SquareCambridgeMA02139+1(617)258-8682timbl@w3.orgThe Hypertext Transfer Protocol (HTTP) is an application-level
protocol for distributed, collaborative, hypermedia information
systems. It is a generic, stateless, protocol which can be used
for many tasks beyond its use for hypertext, such as name servers
and distributed object management systems, through extension of
its request methods, error codes and headers . A feature of HTTP
is the typing and negotiation of data representation, allowing
systems to be built independently of the data being
transferred.HTTP has been in use by the World-Wide Web global information
initiative since 1990. This specification defines the protocol
referred to as "HTTP/1.1", and is an update to RFC 2068 .HTTP Over TLSThis memo describes how to use Transport Layer Security (TLS)
to secure Hypertext Transfer Protocol (HTTP) connections over the
Internet. This memo provides information for the Internet
community.A DNS RR for specifying the location of
services (DNS SRV)Troll TechWaldemar Thranes gate 98BOsloN-0175NO+47 22 806390+47 22 806380arnt@troll.noInternet Software Consortium950 Charter StreetRedwood CityCA94063US+1 650 779 7001Microsoft CorporationOne Microsoft WayRedmondWA98052USlevone@microsoft.comThis document describes a DNS RR which specifies the location
of the server(s) for a specific protocol and domain.Specifying transport mechanisms for retrieval or delivery of
URIsThis document describes a simple extension of the URI format to
allow preferred transport mechanisms and interfaces to be
specified. This explicit configuration is beneficial for
separation of HTTP from underlying transports, which has been
increasingly recognised as useful. Explicit configuration in the
URI for programs is valuable when TCP, traditionally used to carry
HTTP, is not present or not desired, or when other methods of
determining or negotiating the appropriate transport method to
use, e.g. the Domain Name System (DNS), are absent.