Do web browsers always send a trailing slash after a domain name?

后端 未结 4 476
广开言路
广开言路 2020-11-29 08:36

Is there consistency and/or a standard on how browsers send a url to a host related to trailing slashes?

Meaning, if I type in http://example.com in the

相关标签:
4条回答
  • 2020-11-29 08:44

    As RFC 2616 tells:

    3.2.2 http URL

    The "http" scheme is used to locate network resources via the HTTP
    protocol. This section defines the scheme-specific syntax and
    semantics for http URLs.

    http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

    If the port is empty or not given, port 80 is assumed. The semantics
    are that the identified resource is located at the server listening for TCP connections on that port of that host, and the Request-URI for the resource is abs_path (section 5.1.2). The use of IP addresses in URLs SHOULD be avoided whenever possible (see RFC 1900 [24]). If the abs_path is not present in the URL, it MUST be given as "/" when used as a Request-URI for a resource (section 5.1.2). If a proxy receives a host name which is not a fully qualified domain name, it MAY add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy MUST NOT change the host name.

    Read more: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa

    5.1.2 Request-URI
    ...
    For example, a client wishing to retrieve the resource above directly from the origin server would create a TCP connection to port 80 of the host "www.w3.org" and send the lines:

       GET /pub/WWW/TheProject.html HTTP/1.1
       Host: www.w3.org
    

    followed by the remainder of the Request. Note that the absolute path cannot be empty; if none is present in the original URI, it MUST be given as "/" (the server root).

    Read more: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU

    0 讨论(0)
  • 2020-11-29 08:57

    Note that it's a very different matter when the URL has a path element:

    http://example.com/dir
    

    is a different URL than

    http://example.com/dir/
    

    and could in fact contain different content, and have a different search engine ranking.

    0 讨论(0)
  • 2020-11-29 08:59

    As far as the protocol is concerned, http://example.com/something and http://example.com/something/ are quite different. Some servers might redirect you from one to the other if it is implemented in such a way.

    As for the pure domain names, it always sends a request ending with a slash. (The domain name itself is not included in the path section of an HTTP request, just as Greg Hewgill and the others wrote. It is, however, included in the headers.)

    You can check it with a tool like Fiddler or WireShark.

    0 讨论(0)
  • 2020-11-29 09:03

    The HTTP request sent from the browser to the server does not include the domain name, only the "path" portion (starting from the first slash after the domain name). Since the path cannot be empty, a / is sent in that case.

    A sample GET request for the root of a web site might be:

    GET / HTTP/1.0
    

    The / above cannot be omitted.

    0 讨论(0)
提交回复
热议问题