[HN Gopher] Dotless Domains
       ___________________________________________________________________
        
       Dotless Domains
        
       Author : wibbily
       Score  : 170 points
       Date   : 2025-05-11 01:38 UTC (21 hours ago)
        
 (HTM) web link (lab.avl.la)
 (TXT) w3m dump (lab.avl.la)
        
       | 90s_dev wrote:
       | Ahh, I actually ran into this question, at least indirectly,
       | about a month ago!
       | 
       | I was writing an email validator for my project which I'm so
       | excited to announce soon. And my research (some stackoverflow
       | answers) suggested that, yeah, you can have "a@b" as a valid
       | email, _as long as_ there 's a one-letter TLD that can have MX
       | records.
       | 
       | Which it seems there _can_ be!
       | 
       | So my email validator is essentially just /^.{1,}@.{1,}$/ ...
       | yay.
        
         | qaisjp wrote:
         | out of curiosity, why are you trying to validate emails?
        
           | 90s_dev wrote:
           | Just a base level regex before sending emails, to avoid some
           | errors sending to non-email addresses and logging otherwise
           | unnecessary errors.
        
             | bch wrote:
             | Does this block things like the unconventional Google-
             | filing trick of:                 myemail+90sdev@gmail.com
             | 
             | which gives me the "90sdev" tag for my emails, which still
             | go squarely into my "myemail@gmail.com" address? I don't
             | know what the best route is, but I've certainly run into
             | bad validators that block things that otherwise work, and
             | that's annoying. It _seems_ to me the best thing might be
             | to have a user twice input their address, then have the
             | next step /confirmation done _via email_.
        
               | 90s_dev wrote:
               | I don't do blocking or differentiating. Emails are
               | literal, for better or worse.
        
               | esperent wrote:
               | > bad validators
               | 
               | Possibly these validators are working exactly as intended
               | and don't want you to know which service sold your email
               | to spammers.
               | 
               | Then again maybe spammers are smart enough to strip of
               | the + from email lists they purchase.
        
               | kevin_thibedeau wrote:
               | The latter was motivation to get my own domain so I can
               | have unlimited unique addresses with a wildcard entry.
        
               | rendx wrote:
               | > unconventional Google-filing trick
               | 
               | Documented as "subadressing" in RFC 5233, and the default
               | for both sendmail and postfix, amongst others. As such,
               | often 'accidentially' supported by many mail providers
               | even when undocumented. Google didn't introduce them, nor
               | are they 'unconventional'.
               | 
               | https://www.rfc-editor.org/rfc/rfc5233
        
               | bch wrote:
               | TIL
        
             | esperent wrote:
             | The best you can hope to do is reduce a small class out of
             | possible errors. But you'll never get a test that can
             | prevent errors like name@gnail.com, name@gmaip.com,
             | nane@gmail.com etc. So is it really worth doing any checks
             | at all?
             | 
             | I have a .blue email address and it's amazing how many
             | sites _still_ won 't accept it. I keep a spare Gmail
             | account for these.
        
               | 90s_dev wrote:
               | In other words, /^.+?@.+$/ is a user-friendly reminder
               | that you forgot the @ sign or something. That's all.
        
               | qingcharles wrote:
               | .blue is 11 years old and still has issues. Same with
               | several of the gtlds I have. I had an argument with a
               | major backend email provider recently who refused to open
               | an account for me as my gtld wasn't "valid." (they backed
               | down eventually and fixed their code)
               | 
               | I keep a Gmail for the same reason.
               | 
               | I tried to add a .wiki link to a Reddit profile recently
               | and their filters also say that domain is invalid.
        
               | jjani wrote:
               | > I tried to add a .wiki link to a Reddit profile
               | recently and their filters also say that domain is
               | invalid.
               | 
               | That's absurd, there's a .wiki that's almost definitely
               | in the top 20 most visited websites in Korea, if not
               | higher.
        
               | HeliumHydride wrote:
               | There's also minecraft.wiki.
        
               | arp242 wrote:
               | > So is it really worth doing any checks at all?
               | 
               | People accidentally typing their name in the email field,
               | stuff like that. I've done that.
               | 
               | The problems with your .blue is obviously completely
               | unrelated to the "email.contains('@')" check the poster
               | is doing.
        
               | 90s_dev wrote:
               | I _resent_ being called a poster! I am not _flat_ ,
               | nothing was ever _printed_ on me. _I am a human being,_
               | you.. you... you _piece of sheet_!
        
               | 90s_dev wrote:
               | The downvotes are a _sign_ that I did not _notice_ that
               | my reply to the _poster_ was not _composed_. I got the
               | _memo_ , and will take _note_ from now on, _mark_ my
               | words!
        
               | thedufer wrote:
               | > But you'll never get a test that can prevent errors
               | like name@gnail.com, name@gmaip.com, nane@gmail.com etc.
               | So is it really worth doing any checks at all?
               | 
               | You can do quite well at this, if you're willing to not
               | restrict yourself to regexes and commit to some amount of
               | hackery. One system I worked on used a simple regex (just
               | what is described here IIRC - assert the existence of an
               | @ sign), plus did an MX check on the domain, plus warned
               | (not errored) if the domain was within 1 or 2 Levenshtein
               | distance of any of a list of most common email domains
               | (yahoo, gmail, etc). Statistically it seems like we saved
               | people a lot of grief with this simple filtering.
        
             | qingcharles wrote:
             | Does your regex support emoji usernames and domains? (both
             | of which are in use, e.g. https://mailoji.com/)
        
               | 90s_dev wrote:
               | My _project_ doesn 't even support emojis or unicode. In
               | context, it's not an issue.
        
               | kevin_thibedeau wrote:
               | Both parts are limited to 7-bit ASCII or a subset
               | thereof. Emojis have to be in punycode. You could
               | theoretically use UTF-7 for the local-part but nothing
               | supports it in practice.
        
               | bigstrat2003 wrote:
               | That is officially the most cursed thing I've read all
               | week. People really do love to do bizarre things just for
               | the hell of it sometimes.
        
         | gerdesj wrote:
         | I don't know if it is still required but hostnames used to
         | require a minimum of two chars and the first shalt not be an
         | integer. Given that DNS does not put a proper boundary on
         | host/domain, that might extend to your top level ... thingie.
         | 
         | However, there is absolutely no technical reason that I can
         | think of that precludes u@x. In the end DNS query -> DNS
         | answer. Given that say, PowerDNS has LUA built in, I can make
         | it respond with "my little pony's stable is in
         | {random_country}" - to A record requests, which might make the
         | requester a little queasy!
         | 
         | Bugger standards, they are so 1990s!
        
           | esperent wrote:
           | the first shalt not be an integer
           | 
           | I recently came across the 3.ie domain so I guess that's more
           | of a guideline than rule.
        
             | AStonesThrow wrote:
             | I believe that the rule has been deprecated due to better
             | parsing.
             | 
             | In the mid-90s, 3M was a customer of the ISP I worked for.
             | Unable to procure the domain name "3m.com" they settled for
             | the alternate "mmm.com": mildly hilarious considering their
             | lines of business.
        
         | andrewmcwatters wrote:
         | You should know there is a standard regular expression for
         | validating email addresses mentioned in an RFC.
        
           | 90s_dev wrote:
           | I'm sure there is. And I'm sure many email servers deviate
           | from it.
        
           | Xss3 wrote:
           | The real validation is the link in the confirmation email.
           | 
           | Tbh though ideally you would use the most restrictive
           | validation that exists in the mail server. If mail server
           | accepts '@tld' you do too.
        
         | 38 wrote:
         | https://developer.mozilla.org/docs/Web/HTML/Reference/Elemen...
        
           | 90s_dev wrote:
           | My site doesn't use HTML so that's not gonna help here.
        
         | jph00 wrote:
         | Last time I checked the RFC the bit before the '@' can actually
         | be empty. And the root zone is just '.', but we generally can
         | leave off the trailing dot in domain names. So I believe '@' on
         | its own is a valid email address.
         | 
         | Many years ago I managed to get a cctld owner to point their
         | tld MX records at my smtp server, modified postfix to allow
         | empty usernames (even although the RFC allows them, postfix
         | didn't), and successfully had someone send me email to '@tld',
         | in order to win a bet. :) (And it was a 2-letter tld.)
        
           | 90s_dev wrote:
           | > So I believe '@' on its own is a valid email address.
           | 
           | Then the owner of "@" cannot use my site. I'm fine with that.
        
       | tech234a wrote:
       | Similarly, browsers also accept IP addresses in decimal form, for
       | example http://16843009 for 1.1.1.1
        
         | esperent wrote:
         | What's decimal form (base ten?) and why is that 16843009 the
         | decimal form of 1.1.1.1?
        
           | itsgrimetime wrote:
           | 00000001 00000001 00000001 00000001 = 16843009 in base 10
           | (concatenate each dot-separated 8bit number as one big base
           | 10)
        
           | phanimahesh wrote:
           | IP addresses are 4 bytes, each in the range 0-255. In binary
           | bits xyz would be equivalent to decimal x _2^2+y_ 2+z.
           | Similarly, bytes abc would be equivalent to decimal a
           | _256^2+b_ 256+c.
           | 
           | IP address p.q.r.s is decimal p _256^3+q_ 256^2+r*256+s.
        
           | fluidcruft wrote:
           | 1.1.1.1 is 0x01010101 and 0x01010101 is 16843009 in decimal
        
             | ForOldHack wrote:
             | Um no. Parent is exactly right: p256^3+q256^2+r*256+s
        
               | bawolff wrote:
               | Both of these are the same thing
        
               | fluidcruft wrote:
               | Your homework is to read up on the structure of the IP4
               | dataframe header.
        
             | esperent wrote:
             | > 1.1.1.1 is 0x01010101
             | 
             | Huh, in many years of web development I never knew that.
             | Thanks!
        
               | johannes1234321 wrote:
               | Once you got that you will have a way simpler time to
               | understand netmasks and similar and calculate IP ranges
               | etc. it's just a 32bit integer (in ipv4; 64bit with ipv6)
               | and the dots separate the individual bytes to give a
               | "human friendly" representation.
        
         | 90s_dev wrote:
         | I'm bad at math. What's the algorithm for this? Something about
         | 256^(1..4)?
        
           | davejagoda wrote:
           | echo 256^3+256^2+256^1+256^0|bc
           | 
           | 16843009
        
             | 90s_dev wrote:
             | Ha, then I was right, but with a one-off error!
        
           | hug wrote:
           | IPs are 4 octets, normally represented as a decimal between 0
           | and 255, or 00000000 and 1111111 in binary.
           | 
           | Remove the dots and concat the binary value for 1.1.1.1 and
           | you get 00000001000000010000000100000001.
           | 
           | Convert that binary value to decimal and you get 16843009.
        
           | opello wrote:
           | You can think about it like the IP address in hex if you
           | like: 0x01.0x01.0x01.0x01 becomes 0x01010101 which is
           | 16,843,009. So the first 0x01 is 0x01000000 which is the
           | familiar 16,777,216 which then gets the further "base 256
           | digits" added to it.
           | 
           | Or maybe in your terms it's 256^(0..3) where you can think of
           | it like each dotted component is a symbol (like 0-9 in base
           | 10) where each component is a position digit. Where the
           | right-most element is the "256^0" ("ones") digit, and the
           | left most element is the "256^3" ("16,777,216s") digit.
        
         | bingo-bongo wrote:
         | And the shortened form, eg. http://127.1/ (for 127.0.0.1)
        
           | leshokunin wrote:
           | TIL
        
             | 0points wrote:
             | or a public one, http://1.1/
        
         | ranger207 wrote:
         | Usually they'll also accept octal with a leading zero
         | (010.010.010.010 is 8.8.8.8), hexadecimal with a leading 0x,
         | and omitted 0 octets (127.1 is 127.0.0.1). IIRC these are all
         | adopted from BSD's sockets library, or some similar early IP
         | implementation
        
         | Mindless2112 wrote:
         | or http://1.65793 or http://1.1.257
        
         | ryao wrote:
         | They will accept IPv4 addresses in IPv6 addresses too:
         | 
         | http://[::ffff:1.1.1.1]/
         | 
         | Sadly, cloudflare does not.
        
           | efitz wrote:
           | That is a syntactically and semantically valid IPv6 address;
           | no browser trickery.
        
             | immibis wrote:
             | OS trickery, though, because it doesn't send IPv6 packets
             | to that IPv6 address, but rather sends IPv4 packets to the
             | corresponding IPv4 address.
        
         | layer8 wrote:
         | Which doesn't conform to RFC 3986, by the way.
         | The syntax rule for host is ambiguous because it does not
         | completely        distinguish between an IPv4address and a reg-
         | name.  In order to        disambiguate the syntax, we apply the
         | "first-match-wins" algorithm:        If host matches the rule
         | for IPv4address, then it should be        considered an IPv4
         | address literal and not a reg-name.
         | 
         | This means that URL syntax like http://16843009/,
         | http://127.1/, http://010.010.010.010/, and http://127.0.0.1./
         | (note the final dot) should be interpreted as domain names, not
         | as IP addresses. (Domain labels are allowed to be purely
         | numeric.)
        
           | chrismorgan wrote:
           | But it does comply with WHATWG's URL Standard, which declares
           | the goal of obsoleting RFC 3986, providing something that's
           | actually robustly implementable, and reflecting reality.
           | 
           | Some things do definitely try to follow RFC 3986 still, but
           | my feeling is that it's mostly legacy stuff, and the URL
           | Standard is much more important these days. Though RFCs
           | dealing with URLs will probably still cite it (e.g. RFC 9110,
           | HTTP Semantics, June 2022).
           | 
           | https://url.spec.whatwg.org/#host-parsing, follow step seven.
        
             | layer8 wrote:
             | True, though the WHATWG algorithm still raises validation
             | errors internally for all these cases. Meaning, while these
             | representations are leniently accepted, they aren't
             | intended to be valid representations.
        
       | tzury wrote:
       | All domains including TLDs are sub domains of "."
       | 
       | That's why there is a trailing dot you see in NS records for
       | example.
        
         | jfengel wrote:
         | Oh. Thank you. I had wondered.
        
         | Salgat wrote:
         | Seems Chrome also adds the dot at the end in the address bar.
        
         | stackskipton wrote:
         | Trailing dot is complete record, don't add any search domains
         | onto it. (https://en.wikipedia.org/wiki/Search_domain) It's why
         | NS records should have trailing dot in return to prevent
         | unexpected lookup behavior.
         | 
         | Technically you can put just hostname for CNAME record.
         | Obviously, any clients that don't have that domain as search
         | domain will fail but for internal domain, you could do it.
        
         | mesrik wrote:
         | AFAIK calling DNS root the "." is quite recent phenomenon.
         | 
         | I'm fairly old guy who did work with DNS about 35 years before
         | retirement and what I recall from the beginning when I was
         | reading my first copy of DNS and BIND somewhat quite soon it
         | came out -92 I think the second chapter which describes DNS
         | root "A null (zero-length" was already there.
         | 
         | So a FQDN (Fully Qualified Domain Name) well known
         | www.google.com the would be www.google.com."" where between the
         | quotation denotes where the DNS root is shown.
         | 
         | However, resolvers don't recognise that syntax. Don't be fooled
         | by
         | 
         | $ host www.google.com.""
         | 
         | www.google.com has address 216.58.209.164 www.google.com has
         | IPv6 address 2a00:1450:4026:802::2004
         | 
         | from the shell as it removes those double quotes. Using single
         | quotes around shows how that fails and you can check it easily.
         | 
         | $ host 'www.google.com.""'
         | 
         | Host www.google.com."" not found: 3(NXDOMAIN)
         | 
         | The way I learned to understand it the dot in DNS name is (it
         | signifies) the DNS-tree separator, not part of the DNS name. A
         | bit like in some languages (Pascal) use semicolon (;) a
         | sentence separator not an end of sentence like it's in C and
         | many it's practise adopted later.
         | 
         | OK, here's an excerpt from DNS and BIND by Cricket Liu & Paul
         | Albitz, O'Reilly ISBN 0-596-10057-6, Fifth Edition 2006 book
         | which I still have a printed copy in my shelf and shows what
         | I'm referring above.
         | 
         | Chapter 2: How Does DNS Work, page 12, text after Figure 2-1
         | they write:
         | 
         | "Domain Names
         | 
         | Each node in the tree has a text label (without dots) that can
         | be up to 63 characters long. A null (zero-length) label is
         | reserved for the root. The full domain name of any node in the
         | tree is the sequence of labels on the path from that node to
         | the root. Domain names are always read from the node toward the
         | root ("up" the tree), with dots separating the names in the
         | path. If the root node's label actually appears in a node's
         | domain name, the name looks as though it ends in a dot, as in
         | "www.oreilly.com." (It actually ends with a dot--the separator
         | --and the root's null label.) When the root node's label
         | appears by itself, it is written as a single dot, "", for
         | convenience. Consequently, some software interprets a trailing
         | dot in a domain name to indicate that the domain name is
         | absolute.
         | 
         | An absolute domain name is written relative to the root and
         | unambiguously specifies a node's location in the hierarchy. An
         | absolute domain name is also referred to as a fully qualified
         | domain name, often abbreviated FQDN. Names without trailing
         | dots are sometimes interpreted as relative to some domain name
         | other than the root, just as directory names without a leading
         | slash are often interpreted as relative to the current
         | directory.
         | 
         | ... "
         | 
         | I don't have old book copies any more, I've just this one with
         | me.
        
       | FlamingMoe wrote:
       | I think this post is trending because of a comment on the
       | announcement about the new Pope, where someone pointed out the
       | redundancy in the vatican.va domain.
        
         | rat87 wrote:
         | > There 86 domains names starting with "www" in the .va
         | zone,[6] with many more email-only subdomains.
         | 
         | https://www.vatican.va/siti_va/index_va_en.htm
        
         | 90s_dev wrote:
         | Yep, https://news.ycombinator.com/item?id=43949769
        
         | AStonesThrow wrote:
         | The vatican.va domain has long been an outlier for not
         | operating a web server at that shortened address.
         | 
         | They insist on using the "www.vatican.va" only, and my
         | browser's autocomplete history reflects this.
        
           | pelagicAustral wrote:
           | This is such a beautiful thing, it gets you in the head as
           | much as in the heart... alas, probably nobody else feels this
           | way about it...
        
       | nulbyte wrote:
       | > According to ICANN's SSAC,[1] SMTP requires at least two
       | labels...
       | 
       | ICANN does not define SMTP, and the "relevant quote" from SSAC in
       | the article footnotes mentions nothing about it, either.
       | 
       | In fact, RFC5321 makes explicit reference to the possibility of
       | an email address using a TLD as the domain in section 2.3.5.
        
         | qingcharles wrote:
         | I've known people back in the 90s with user@tld domains, and
         | they were definitely sending and receiving mail. So, even if it
         | wasn't spec-compliant it certainly got through all the early
         | mail relays.
         | 
         | I mean.. you can use emoji domains right now. They work _most_
         | places for email. The part I found didn 't work so well is
         | emoji usernames on emoji domains. That has poor deliverability.
        
           | Joker_vD wrote:
           | > you can use emoji domains right now
           | 
           | ICANN, by the way, heavily discourages such domain names,
           | even though it can't actually prohibit them: yes, RFC 5892
           | explicitly prohibits emoji code points in internationalized
           | domain names but so what? If registrars allow (and many
           | acually do allow) registration of such names that only means
           | that they violate some RFC and they already violate quite a
           | lot of them. Who cares! Just pay the money and we will
           | delegate you whatever names you want.
        
             | rzzzt wrote:
             | I'd think/hope the Punycode representation is actually
             | registered in these cases:
             | https://en.wikipedia.org/wiki/Emoji_domain
        
         | pas wrote:
         | sure, and you can use it internally, or with your own
         | private/internal DNS (or other name resolution system), but in
         | practice it means that for new gTLDs it's a no-go, right?
        
       | vzaliva wrote:
       | I knew someone who had email ??@ua (two letters masked for
       | priivay) which might have been one of the shortest email
       | addresses in the world. Unfortunately it was not very useful as
       | most email systems failed to recognize it as a valid email
       | address. :(
        
         | codethief wrote:
         | > two letters masked for priivay
         | 
         | You do realize there are not that many two-letter
         | combinations...? :)
        
         | thequux wrote:
         | I know that Len Sassaman had r@ai for quite some time, so your
         | friend didn't have the absolute shortest address. Still a cool
         | one though
        
       | hirsin wrote:
       | At one point we were looking at moving a bunch of separate
       | domains under a single dotless domain, due to the threatened
       | death of 3p cookies, so that cookies could be dropped directly
       | onto the cctld (think "you're logged into the entire TLD"). As
       | the owners of the cctld it felt like a neat use that technically
       | could work but ICANN and other groups are explicitly against
       | that.
       | 
       | To me it felt very AOL keyword
        
         | mattl wrote:
         | I think done well, AOL keywords are actually a good idea.
         | 
         | They could also cut down on the fraudulent websites out there.
         | 
         | Not sure how to fully implement it but given the safe browsing
         | features already implemented in web browsers it could perhaps
         | be part of that. Or a new TLD.
        
           | hirsin wrote:
           | I imagine they'd have all the lovely problems of both EV
           | certs (sure, you're legitimately PayPal Corp, in Malawi) and
           | limited real estate price squeezes.
           | 
           | Curation of "good" or "real" websites has been tried before -
           | I don't envy anyone that wants to try another go at it.
        
       | kreativ_py wrote:
       | yea the people at uz have no idea what theyre doing lmao
        
       | zoky wrote:
       | I had a teacher in high school who once wrote a URL on the
       | whiteboard like this: com/foo/bar.html
       | 
       | Upon informing him that he had forgotten to write the domain, I
       | learned that the site was actually www.com, and he had just left
       | the http://www part off because "the web browser adds that
       | automatically". I assured him that, while in principle he was
       | more or less correct, but in this case it wouldn't work. He ended
       | up adding the www, but I could tell he was skeptical that I was
       | just being a smart ass.
        
       | zatkin wrote:
       | It's funny seeing that list of MX apex records. In response to me
       | trying to show off how I had acquired a single letter domain, and
       | had a single letter e-mail address (which resulted in *@*.**,
       | replacing asterisks with letters), my boss showed how he was able
       | to receive an e-mail address under one of those two-letter 'MX
       | apex records'...
        
       | Animats wrote:
       | Most browsers treat one word not as a domain but as a search key.
       | This was an issue when companies started getting their own TLDs.
       | Could you just type "amazon" or "microsoft", which are TLDs, and
       | go there without being diverted to a search engine? The answer is
       | no. Even if you put a dot after the domain name.
       | 
       | DNS lookup and web browser domain lookup are not quite the same.
       | This is the price of a unified input bar.
        
         | wibbily wrote:
         | Mobile Safari likes to do this to me w/ machines on my tailnet.
         | Whether dropping "foo:8080" in the address bar takes me to the
         | webserver or to Google is random and I swear there is no
         | pattern
        
           | dgellow wrote:
           | in my experience you have to explicitly add the https://
           | prefix to get it to consistently load the address
        
           | Tsiklon wrote:
           | Drop a slash at the end, it tends to turn it into an actual
           | NS lookup not a search.
        
         | CraftThatBlock wrote:
         | At a previous company, our intrasite was a bare custom domain,
         | and the most reliable way to get there was to add a / at the
         | end. This is likely browser dependent though
        
         | eadmund wrote:
         | > This is the price of a unified input bar.
         | 
         | I never saw what was wrong with having a URL and a search box
         | in the same bar. It was fine, and I knew that whatever I typed
         | into the URL bar would be treated as a URL.
         | 
         | Fast forward a few years, and _URLs_ I type into the bar are
         | not treated as URLs (internal HTTP URLs get rewritten to HTTPS
         | when a server is restarting).
        
         | thedufer wrote:
         | Putting a slash '/' at the end consistently gets you there, at
         | least in Chromium-based browsers. We use this a lot at work
         | (via DNS search suffixes, not private TLDs).
        
           | Biganon wrote:
           | The "correct" way would be to add a dot at the end
        
             | tuckerman wrote:
             | At least in chrome the final period doesn't seem skip
             | search, so I guess you want tld./ (or foo/ if you want to
             | use your search domain)
        
         | anticrymactic wrote:
         | A forward slash at the end usually does the trick for me.
         | 
         | homeserver -> Google
         | 
         | homeserver/ -> http://homeserver/
        
       | webprofusion wrote:
       | Slashdotted
        
       | sebmellen wrote:
       | Temporarily rate limited?
        
       | tony-allan wrote:
       | Website is currently rate limited.
       | 
       | https://archive.is/MDRWw
        
       | notepad0x90 wrote:
       | Does HN really have that many lurkers that it can can cause a
       | hug-of-death on a website behind cloudflare like this??
        
         | pxeboot wrote:
         | The Cloudflare Workers free tier is not unlimited. They offer
         | two options on how to handle the situation [1].
         | 
         | [1]
         | https://developers.cloudflare.com/workers/platform/limits/#d...
        
         | throwaway519 wrote:
         | Wasn't Cloudflare supposed to prevent DDOSing?
         | 
         | It seems only a privacy leak tool now.
         | 
         | 1000 requests / min @ 10ms limit / request. That's 16 requests
         | per second. Any reasonable CMS, wiki or blogging tool should be
         | able to do one request in 62.5ms. Add on cacheing for non
         | logged in users and nginx serving anything static, that's less
         | than the power a $5 VPS provides.
         | 
         | At these rates, the case for Cloudflare is a lot less than it
         | was.
        
           | tonyhart7 wrote:
           | "Wasn't Cloudflare supposed to prevent DDOSing?"
           | 
           | there a fine line between DDOS from bots and 30k real users
           | accessing your site at the same time
           | 
           | cloudflare do not provide resource for the latter
        
             | singularity2001 wrote:
             | don't they offer caching?
        
             | 93po wrote:
             | isnt the point of a DDOS being unable to differentiate the
             | traffic and therefore not block it? ideally it would look
             | like organic 30k
        
           | mklepaczewski wrote:
           | 62.5ms for a non-cached request? In my experience that's
           | really fast response time for a blog even on a dedicated
           | bare-metal server.
        
             | josephg wrote:
             | Really? Why?
             | 
             | Blog posts don't change much. Even if your rendering code
             | is horrendously slow (though, why?), you can just cache the
             | resulting html and serve it up with each request. Or slap
             | nginx in front of your web server locally and let that deal
             | with the load. 'Course you'll need your http headers set
             | correctly, but you needed that anyway for cloudflare.
             | 
             | Your server has to be pretty badly configured for a
             | personal blog to run out of CPU handling requests.
        
               | ffsm8 wrote:
               | mklepaczewski was probably talking about end-to-end. I.e.
               | the number you see in the network tab for request
               | duration - whereas the pricing will only care about the
               | time that the application is actually doing something.
               | 
               | That basically means it starts after the connection was
               | established by the proxy (cloudflare) and terminates
               | before the response is delivered to the client.
               | 
               | Doing the whole round trip within 65ms is actually pretty
               | challenging, even if you are requesting over the wire. It
               | would mean you have maybe 10-20 Ms to query data from the
               | database and process them to html or json. Any kind of
               | delay while querying the database is going to ruin that.
               | 
               | If you had a 65ms in the application, you would probably
               | get a round trip average of something above 90, likely
               | closer to 150 then 90.
        
               | josephg wrote:
               | For a blog? Why is a blog fetching data from a database
               | on every request?
               | 
               | If you cache the response yourself (or use nginx), the
               | server should be responding to queries in <1ms.
        
               | ffsm8 wrote:
               | Sure, but this particular case clearly wasn't using
               | cache, that's why the free tier limit for an application
               | was reached. Hence it's highly likely that each request
               | hit a database.
               | 
               | The message would've been different if it was cached.
               | 
               | https://workers.cloudflare.com/
        
               | kentonv wrote:
               | Cloudflare Workers run _in front of_ cache -- which is
               | generally useful since it allows you to serve
               | personalized pages while still pulling the content from
               | cache, and since Workers can easily run in  <1ms and run
               | on a machine you were already going to pass through
               | anyway (the CDN), it doesn't hurt performance. But it
               | also means that the free tier limit of 100,000 requests
               | per day includes requests that hit cache.
               | 
               | (I'm the tech lead for Workers.)
        
             | ahofmann wrote:
             | That is reasonably fast. We wrote entire games in PHP where
             | we aimed for wall time under 100ms. That is a challenge,
             | but often doable. Some routes managed to respond in under
             | 50ms.
        
               | hammyhavoc wrote:
               | Go on--I'll bite! What did you write?
               | 
               | I spent a colossal amount of my childhood and teens
               | playing browser-based games and have zero regrets!
        
               | ahofmann wrote:
               | You probably haven't heard of them. We were a German
               | studio, and most of our games only reached a few tens of
               | thousands of players. The biggest hit was Xhodon -- it
               | had a bit of a following among World of Warcraft fans. It
               | was a fun time.
        
           | ezfe wrote:
           | This isn't a performance hug of death, it's a rate limit one.
        
           | reassess_blind wrote:
           | Yes, and it does that well. This user has exceeded the
           | 100,000 free workers invocations per day, a different
           | service.
        
           | elric wrote:
           | A privacy leak tool, and an annoyance generator. Every time I
           | have to click their silly "prove you're human"-thing I feel a
           | little more dehumanized.
        
             | imiric wrote:
             | Are you sure you're not a robot?[1]
             | 
             | [1]: https://www.newyorker.com/video/watch/im-not-a-robot
        
             | bryanrasmussen wrote:
             | Me too!
             | 
             | https://medium.com/the-haven/i-am-worried-about-these-
             | newest...
        
           | kentonv wrote:
           | Obviously a $5 VPS would give you more raw compute than the
           | Cloudflare Workers free tier.
           | 
           | However:
           | 
           | 1. It would run in a single location in the world, whereas
           | Workers (even on the free tier) will run in Cloudflare
           | locations all around the world, close to the end user,
           | reducing latency.
           | 
           | 2. If you're going to compare against a $5 VPS, the $5
           | Workers paid tier is probably a better comparison? It can
           | instantly scale to millions of requests per second.
           | 
           | (Disclosure: I'm the tech lead for Cloudflare Workers.)
        
         | mklepaczewski wrote:
         | User would have to enable caching in CF and the response from
         | the server would have to be cacheable for CF for caching to
         | kick in.
        
         | franga2000 wrote:
         | Looks like it's not "behind cloudflare", but served using
         | Cloudflare Workers. Probably on the free tier, which is capped
         | at 100000 req/day.
        
         | ksec wrote:
         | This is an Cloudflare Worker issue right now. Although I have
         | no idea what the site is and why does it not work.
         | 
         | Most site, on simple page like CMS or wiki should be static.
         | And serving it from cache even a $5 VPS could do a few hundred
         | _page view_ per second, or 1000+ Request per second. I dont
         | believe HN generate these amount of traffic. From previous note
         | on other HN front page page it is actually much smaller than
         | most expected. Something like IIRC 30K to 50K Page views - over
         | the course of 24 hours.
        
           | lionkor wrote:
           | A $5 vps can handle around 15k req/s with a normal setup (you
           | then hit the limit of what a webserver can serve, maybe up to
           | 35k but then it's really over).
           | 
           | Mind you, at that point you serve more requests _slower_ ,
           | before that you don't even notice a latency increase.
        
             | ksec wrote:
             | Yeah I was thinking of being limited by the pipe of 100mbps
             | rather than CPU. But I just checked on Linode and DO turns
             | out those low cost VPS no longer has this limitations. I
             | guess I need to update my mental model.
             | 
             | Just shows again we really don't need CDN for most things.
             | Just keep it simple.
        
           | efilife wrote:
           | $5 doesn't mean to everyone what it means to you. Not
           | everyone lives in America
        
         | systemswizard wrote:
         | It's because it's a poorly made Cloudflare worker site that
         | prob ate up their free tier credits quickly
        
       | geor9e wrote:
       | My uncle had one of these in the 90s. All I knew was he was a
       | higher up at the university in his smallish country, and ran
       | their internet stuff. It confused the heck out of me when he
       | verbally told me to bring his website up at Thanksgiving dinner,
       | and after I typed a dot, he said "no no, no dot. just enter" And
       | it worked. Baffled me as a kid. Nice to finally have some
       | explaination for that fever dream of a memory.
        
       | adwawdawd wrote:
       | hahaha siteless website due to "global cdn" not being paid lmfao
        
       | lazaruzLong wrote:
       | https://web.archive.org/web/20250511025024/https://lab.avl.l...
        
       | cduzz wrote:
       | Every ten years I fiddle around with DNS and look for these weird
       | names where the top level domain resolves to an actual address.
       | 
       | It's funny to refer to these as "dotless" since you still need a
       | dot, on the end, to "canonize" the name and tell your DNS
       | recursor 'hey, stop appending domains to see if you can find
       | this.'
       | 
       | And, our recent history has "Canonized" a new pope, and you could
       | (maybe?) look it up against one of the few dotless global DNS
       | entries, but it's still going to need the trailing dot to tell
       | your recursor that it's a canonical name...
        
       | maximilianthe1 wrote:
       | This website has been temporarily rate limited
       | 
       | You cannot access this site because the owner has reached their
       | plan limits. Check back later once traffic has gone down.
        
         | a3w wrote:
         | https://web.archive.org/web/20250511025024/https://lab.avl.l...
        
       | OhMeadhbh wrote:
       | i remember back in the old days a MX queary for a single letter
       | between 'a' and 'm' would be sent to that root. if they wanted
       | to, they could resolve the response.
       | 
       | i remember having a conversation w/ paul vixie that he had either
       | set it up (or was presenting it as a thought experiment) that he
       | could have the email address "p@f". and i trust paul knew what he
       | was doing with respect to DNS and RFC822 email.
        
       | altprivacypls wrote:
       | Is it just me to whom it showed cloudflare rate limit.
       | 
       | And then I clicked on the HN to see an archive link and then it
       | worked perfectly.
       | 
       | Jeez, If I am going to build any blog, I am just going to publish
       | to archive.
        
       | avipars wrote:
       | Hug of death
        
       | Tsiklon wrote:
       | I used to work with a very gifted old school systems engineer who
       | used to run the network and systems behind a country TLD; I
       | remember him telling me about how he sent an email from the TLD
       | itself out to the world - something that baffled and shocked me
       | as a junior at the time, simply thinking it wasn't possible.
        
       ___________________________________________________________________
       (page generated 2025-05-11 23:01 UTC)