10 ms·
HN supports SPDY
- monsterix 13y agoCool, way too cool! Here are two resources we wrote to help get on with SPDY (shameless plug, though :(): http://blog.bubbleideas.com/2012/08/How-to-set-up-SPDY-on-nginx-for-your-rails-app-and-test-it.html http://blog.bubbleideas.com/2012/08/How-to-set-up-SPDY-on-ng... http://stackoverflow.com/questions/15152775/how-to-set-up-spdy-protocol-over-nginx/15170226#15170226 http://stackoverflow.com/questions/15152775/how-to-set-up-sp... We read quite many posts suggesting that SPDY doesn't help much but that's simply not true. At least in our case. If you're delivering assets over secured sockets layer, then SPDY is definitely a plus.
- ushi 13y agoI ran into this bug after enabling spdy in nginx and had to disable it. https://code.google.com/p/chromium/issues/detail?id=161751 https://code.google.com/p/chromium/issues/detail?id=161751 Don't know, if it is a nginx thing, but all browsers had problems.
- rrouse 13y ago"This means all of website visitors that can browser with SPDY, do browser using SPDY." I like it
- shmerl 13y agoJust noticed that the indicator turned on :) https://addons.mozilla.org/En-us/firefox/addon/spdy-indicator/ https://addons.mozilla.org/En-us/firefox/addon/spdy-indicato...
- peterfschaadt 13y agoHere is the SPDY indicator I use for Chrome. It's also simple and works well. https://chrome.google.com/webstore/detail/spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin https://chrome.google.com/webstore/detail/spdy-indicator/mpb...
- joosters 13y agoChrome addon permissions are terrifying. 'Access your data on all websites', 'Access your tabs and browsing history'. All this when the code is a one-liner: chrome.extension.sendRequest({ spdy: window.chrome.loadTimes().wasFetchedViaSpdy }); It's not the extension's fault, but Google's. I guess they want us to get used to ignoring the scary permissions? (Also, wouldn't it be good if the Chrome store had a link to the developer / source? All I could find on there was a username 'rauchg')
- akama 13y agoHmmm, it's interesting to compare that to android permissions. I feel that android permissions are much better in terms of being readable.
- eco 13y agoI remember at the last Google I/O the Chrome team said they were working on a more granular permissions system and recognized how scary "Access your data on all websites" was. Not sure when that's supposed to debut though.
- drivebyacct2 13y agoErm, it doesn't light up on HN for me.
- 13y ago
- wyck 13y agoHere is the link if you're running Apache and want SPDY: https://developers.google.com/speed/spdy/mod_spdy/ https://developers.google.com/speed/spdy/mod_spdy/
- kevinburke 13y agoalso interesting: curl -I https://news.ycombinator.com HTTP/1.1 501 Not Implemented Server: nginx Date: Mon, 06 May 2013 04:31:05 GMT Content-Type: text/html Content-Length: 174 Connection: close don't see that one every day :)
- deleted 13y ago[deleted]
- enneff 13y agoI think that's because the web server doesn't implement HEAD requests (that's your -I flag).
- jimktrains2 13y agoI think GP knows that and is just surprised that it doesn't support HEAD.
- spicyj 13y ago$ curl -IX GET https://news.ycombinator.com HTTP/1.1 200 OK Server: nginx Date: Mon, 06 May 2013 04:41:40 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: private X-Frame-Options: DENY Cache-Control: max-age=0 Strict-Transport-Security: max-age=31556900; includeSubDomains
- deleted 13y ago[deleted]
- jedberg 13y agoGreat! Now if only they would implement allowing HEAD requests and support for any of the various headers that would allow me to get a 304. The reason I ask is because every time my Safari crashes, if I have 50 HN tabs open (as I often do on by Friday [1]) I'll get IP banned from HN because Safari will do a GET request on each page, but it can't pass any of the headers necessary to get back a 304, because HN doesn't support it. [1] The way I consume HN is I load up HN once or twice a day, open up all the interesting links and their comment pages in new tabs, and then go back to work. Then when I have some downtime (most of which is on the weekend) I read through all the open tabs.
- rdl 13y agoIsn't that how everyone uses HN?
- jedberg 13y agoMaybe. In which case, all the more reason to do it!
- drivebyacct2 13y agoIt seems much more sane, even when my machines have 8GB+ of RAM to simply have a "read later" bookmark folder on your bookmark bar^. I have my bookmark bar shown with single icon hot shortcuts, a blank folder with all my bookmarks and a simply "revisit" folder with articles, youtube videos, whatever to read during downtime. (I guess quite simply I don't trust my browser or session recovery enough to do that). Plus, Chrome Sync means I get those free on my mobile too. Nice for when I'm stuck a waiting room or something. Also, isn't there a whole class of "read it later" type services? Seems a bit much overhead for me. ^ tip, you can drag the padlock/favicon next to the URL right onto/into your "revisit" bookmark folder too, in case you didn't know
- rdl 13y agoChrome Sync also gives you all the open tabs from another browser (which is one of many reasons I love Chrome for iOS)
- anix 13y agoumm, and does this mean there's some way to have HN load faster?
- acqq 13y ago...which enables it to return "unknown or expred link" even faster. </sarcasm
- ericflo 13y agoHas anyone built an NSURLProtocol subclass for SPDY? I did a quick GitHub search and found nothing. Seems to me that's one big use case that SPDY could dramatically improve, is all these native mobile apps which open SSL connections to their APIs.
- dsl 13y agoSPDY has no benefit for mobile APIs. Make sure you turn on HTTP Keep-Alive and all your requests will be pipelined over a single TLS connection.
- hobohacker 13y agoWhy do you assert it has no benefit for mobile APIs? Here are a few that I can think of off the top of my head: * SPDY Multiplexing is superior to HTTP pipelining. Pipelining requires in-order responses, which leads to head of line blocking. * SPDY header compression is a win for mobile, since mobile uplink bandwidth is often a bottleneck. Request header compression allows for fitting more requests into fewer packets. * Mobile connections are more likely to hang, so using SPDY PINGs (https://insouciant.org/tech/connection-management-in-chromium/#blackholed_tcp https://insouciant.org/tech/connection-management-in-chromiu...) will help fail fast. * Multiplexing more requests over fewer connections will help with mobile power usage (https://insouciant.org/tech/connection-management-in-chromium/#radio_usage https://insouciant.org/tech/connection-management-in-chromiu...).
- dsl 13y agoBecause SPDY is designed for quickly loading websites with lots of resources (the average page has 50-100 components). Just because it is new and fancy and from Google doesn't mean you should use it for other things that transport over HTTP/S. If you are going to dedicate resources to switching to SPDY, you should instead investigate protobuf. * Almost all APIs are transactional. Your API should be returning all the data you need to render a single screen in your mobile app, or it is inefficient. * You should be stripping all request headers except for User-Agent, and the server should be responding based on the known capabilities of the app version. * Pings are not the correct way to deal with hangs. I don't want to spill any secret sauce here, but it should be obvious to anyone with low level TCP experience. * Pipelining also uses a single connection. Opportunistic FINs are not unique to SPDY.
- mooism2 13y agoIf you ask spdycheck.org to check a site that doesn't support spdy, and customise that site's Server header to include arbitrary html, spdycheck.org will include that header, verbatim and unescaped, in the page it presents to you (or anyone else who checks that site). I don't know that it's a security flaw in this context, but it's sloppy.
- NKCSS 13y agoThat's a XSS then :)
- tptacek 13y agoDoes it matter? Do you actually care about your spdycheck session?
- billyhoffman 13y agoNot likely Thomas, but still, would look kind of silly for someone who spoke at BlackHat for years about JavaScript and XSS like I did to release a free tool with a DOM-based XSS... :-)
- deleted 13y ago[deleted]
- billyhoffman 13y agoAhhh. Thanks. All info from the web server, such as the protocols returned in the NPN extension and the Server header were passing through an HTML Encode function. Except there was one case where, if the site didn't support SPDY, and SPDY check could not determine the type of web server, the Server header output was not getting HTML encoded. Thanks for letting us know. Billy Hoffman (founder and CTO @ zoompf)
- chankey_pathak 13y agoGood news :)
- deleted 13y ago[deleted]
- mattparlane 13y agoI'd really love to see some stats on page load times before and after.
- stephen_g 13y agoThat's cool. Why isn't HN available over IPv6 though? Softlayer (the hosting provider HN appears to use) has supported it natively since 2011. It is pretty scummy that they charge for IPv6 allocations if you want more than the one address they give you though - I've never seen anyone else doing that - some providers even give you a /56 or /48 free or charge, but Softlayer charges $4 a month for a /64...
- peterwwillis 13y agoThere's still free IPv6 tunnel brokers, and pg can probably afford an extra $4 a month. The fact is that no website will enable IPv6 unless they have spare time and want a mini-project. It is of course much, much preferred to have a native address. But if you're lazy you can enable IPv6 using 6to4 encapsulation and hope for the best: modprobe ipv6 MYV4=`ip addr show dev eth0 | grep 'inet ' | awk '{print $2}' | cut -d / -f 1` MYV6=`printf "2002:%.2x%.2x:%.2x%.2x::1\n" $(echo $MYV4 | tr . ' ')` ip tunnel add 6to4-ipv6 mode sit remote any local $MYV4 ttl 255 ip link set 6to4-ipv6 up ip -6 addr add $MYV6/16 dev 6to4-ipv6 ip -6 route add 2000::/3 via ::192.88.99.1 dev 6to4-ipv6 metric 1 echo 'nameserver 2001:470:20::2' >> /etc/resolv.conf echo "@ IN AAAA $MYV6" >> /your/zone/file.conf echo "ns1 IN AAAA $MYV6" >> /your/zone/file.conf echo "www IN AAAA $MYV6" >> /your/zone/file.conf iptables -A INPUT -i eth0 -p ipv6 -j ACCEPT
- stephen_g 13y agoYou do get one free v6 address, if I'm reading their product page correctly. It doesn't really need to be a mini-project in your spare time - on some hosts I use, setting up native IPv6 took a few clicks and less than five minutes... I added IPv6 to an AWS machine using http://tunnelbroker.net http://tunnelbroker.net - setting it up in Debian literally took five minutes and then adding an AAAA record took another two or three...
- peterwwillis 13y agoIt takes more time than that if you've never done it before. You have to set up DNS, set up the host's networking and firewall, configure and restart your network service, test the service (all this assuming you don't need a tunnel broker). I don't think it's difficult to do at all, but the onus on the admin to figure it out (and the fact that IPv4 works just fine) means nobody ends up doing it.
- da_n 13y agoGreat, but interested in why it still loads up pages only marginally faster than PayPal? Seems to have kept the same page load performance this despite all the news about better servers etc. I know we don't want this place to become Reddit[1] but is there also a built-in delay implemented? [1] I can only imagine this is why the pagination still appears completely broken (unknown or expired link).
- powertower 13y agoFrom the looks of it, real world SPDY performance increases are non-existent for most websites due to how they are organized and served. You have to really change how your website gets served (at the cost to non-SPDY users) to get an increase in performance. Which usually ends up not even being 25%. From what I've been able to gather, especially with little to no reports of any real-world benefits (I've only seen criticism of "bad" tests from SDPY supporters, but at the same time no one has posted a "good" test), I have to say SDPY is turning out to be hot air. I'm hoping I'm wrong.
- lucb1e 13y ago> From the looks of it, real world SPDY performance increases are non-existent for most websites due to how they are organized and served. That, and the sites that care to implement it probably were speedy already.
- hobohacker 13y agohttp://www.chromium.org/spdy/spdy-whitepaper http://www.chromium.org/spdy/spdy-whitepaper has data on improvements in lab tests. http://googlecode.blogspot.com/2012/01/making-web-speedier-and-safer-with-spdy.html http://googlecode.blogspot.com/2012/01/making-web-speedier-a... has a blurb where Google announces that they've made search (already highly optimized) faster with SPDY. This is a fascinating result, because this result was obtained after Google Search switched to using HTTPS, which typically makes websites slower, but in Google's case, made it faster because of SPDY. Note that Twitter and Facebook have also adopted SPDY. I'd be rather skeptical that Google, Twitter, and Facebook would all switch to SPDY if there weren't real world benefits.
- jstsch 13y agoGood to know that nginx supports spdy out of the box since 1.3.15: http://nginx.org/en/CHANGES http://nginx.org/en/CHANGES
- Nux 13y agoBTW HN has been unusually slow these past days, got frequent nginx errors, too. Turned off SPDY in browser for the moment, let's see if I get any more nginx errors.
- daemonfire300 13y agoEurope, Germany. Every Device I use HN on => HN is slow, really slow as hell. Taking up tp 10 seconds to refresh or load a thread.
- jorisw 13y agoAm I the only one who sees Does Not Support? http://spdycheck.org/#news.ycombinator.com http://spdycheck.org/#news.ycombinator.com
- D9u 13y agoIt's telling me the following: news.ycombinator.com Does Not Support SPDY SPDY Protocol Not Enabled! Seriously? This SSL/TLS server is using the NPN Entension to tell browsers it supports alternative protocols, but SPDY is not a protocol it supports. The server is not making SPDY an option. Since all the pieces are in place, hopefully it will be easy to enable SPDY support with this server. (The typo is from the site)