Bug #2258
closedBad Request
Description
Hi,
i have a problem with Lighttpd.
With this host header lighttpd return "400 Bad Request"
http://laclinique_adv.lnx.connexia.com/
If i don't use this character : "_" everithings works fine.
Here the host configuration :
$HTTP["host"] =~ "laclinique_adv.lnx.connexia.com" {
server.document-root = "/var/www/laclinique_adv"
}
Updated by nitrox over 14 years ago
- Status changed from New to Invalid
This is our bugtracker, not the support forum.
Updated by icy over 14 years ago
As an explanation: _ is not allowed in hostnames.
Updated by Olaf-van-der-Spek over 14 years ago
icy wrote:
As an explanation: _ is not allowed in hostnames.
Says who?
Updated by nitrox over 14 years ago
The RFC says so (you´ll find the correct one yourself). Don´t mix valid hostnames with allowed DNS names.
Updated by luivm over 14 years ago
- % Done changed from 0 to 100
The RFC is 1123:
http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names
Here the part we are interested on :
The Internet standards (Request for Comments) for protocols mandate that component hostname labels may contain only the ASCII letters 'a' through 'z' (in a case-insensitive manner), the digits '0' through '9', and the hyphen ('-'). The original specification of hostnames in RFC 952, mandated that labels could not start with a digit or with a hyphen, and must not end with a hyphen. However, a subsequent specification (RFC 1123) permitted hostname labels to start with digits. No other symbols, punctuation characters, or white space are permitted.
Thank you to everyone.
Updated by Olaf-van-der-Spek over 14 years ago
nitrox wrote:
The RFC says so (you´ll find the correct one yourself). Don´t mix valid hostnames with allowed DNS names.
I can't find the requirement in RFC2616 to validate the host name.
Updated by icy over 14 years ago
RFC2616¶
14.23 Host Host = "Host" ":" host [ ":" port ] ; 3.2.1 General Syntax RFC 2396 [42] (which replaces RFCs 1738 [4] and RFC 1808 [11]). This specification adopts the definitions of "URI-reference", "absoluteURI", "relativeURI", "port", "host","abs_path", "rel_path", and "authority" from that specification.
RFC2396¶
3.2.2. Server-based Naming Authority host = hostname | IPv4address hostname = *( domainlabel "." ) toplabel [ "." ] domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum
This has been discussed many times already.
Updated by Olaf-van-der-Spek over 14 years ago
icy wrote:
This has been discussed many times already.
AFAIK Lighttpd is a web server, not a protocol validator. ;)
Why does Lighttpd need to validate the host name against RFC2396?
Updated by icy over 14 years ago
Because RFC2616 which is the HTTP/1.1 RFC says so, like I quoted above.
Updated by luivm over 14 years ago
I agree with Olaf, lighttpd is a web server and is not a protocol validor.
Apache2 for example don't validate the rfc
Updated by icy over 14 years ago
Can you guys give one good reason why there would be a need to allow underscores in hostnames and why you can't just use dashes instead?
Updated by Olaf-van-der-Spek over 14 years ago
icy wrote:
Because RFC2616 which is the HTTP/1.1 RFC says so, like I quoted above.
Your quotes don't say that 400 should be returned if the request does not match the RFC.
Can you guys give one good reason why there would be a need to allow underscores in hostnames and why you can't just use dashes instead?
The underscore might've been used for ages, so changing it might not be an option due to existing links.
Also available in: Atom