Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-08-26 Thread Giuseppe Scrivano
Daniel Stenberg dan...@haxx.se writes:

 On Thu, 30 Apr 2015, Daniel Stenberg wrote:

 Did anything happen with this project?

As far I know, nothing happened with it, but maybe Miquel has more
details about it.

Regards,
Giuseppe



Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-08-25 Thread Daniel Stenberg

On Thu, 30 Apr 2015, Daniel Stenberg wrote:

Did anything happen with this project?

--

 / daniel.haxx.se



Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-05-04 Thread Giuseppe Scrivano
Daniel Stenberg dan...@haxx.se writes:

 On Fri, 1 May 2015, Miquel Llobet wrote:

 Do you suggest starting off with HTTPS first then?

 Yes sure if you want to get something going first, and then using both
 NPN and ALPN for maximum compliance at least for now.

 It seems like most client/browsers only plan to support HTTPS.

 Firefox and Chrome are both only doing HTTP/2 over HTTPS. I'm not
 aware of anyone else have stated it that clarly.

 But these two are big enough to also have the effect that lots of
 sites will then only offer HTTP/2 over HTTPS. Like currently all the
 google services and twitter do.

Miquel, yes please, I think it is better to fo the easy way for now.  No
need to support something that Firefox and Chrome haven't.
If it will be ever be needed, we can add it in future, not within the
GSoC project.

Thanks,
Giuseppe



Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-05-03 Thread Daniel Stenberg

On Fri, 1 May 2015, Miquel Llobet wrote:


Do you suggest starting off with HTTPS first then?


Yes sure if you want to get something going first, and then using both NPN and 
ALPN for maximum compliance at least for now.



It seems like most client/browsers only plan to support HTTPS.


Firefox and Chrome are both only doing HTTP/2 over HTTPS. I'm not aware of 
anyone else have stated it that clarly.


But these two are big enough to also have the effect that lots of sites will 
then only offer HTTP/2 over HTTPS. Like currently all the google services and 
twitter do.


--

 / daniel.haxx.se



Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-04-30 Thread Miquel Llobet
On Thu, Apr 30, 2015 at 8:39 AM, Daniel Stenberg dan...@haxx.se wrote:

 Is there another reason to use libevent than simply the fact that an
 nghttp2 example uses it?

 As current wget isn't libevent based, it seems like a pretty major
 redesign to change it to use libevent only for the purpose of adding HTTP/2.


Agreed, I will most likely end up reusing code instead of libevent, at the
time of the proposal I didn't think the changes would be so big. I was just
concerned of some blocking code in wget when reading form the socket
(namely select(2)). But it would be silly to throw away so much code.

I'm glad to see this project come to life, and I'm happy to see you chosing
 to base it on Tatsuhiro's awesome nghttp2 library. We do this in the curl
 project too.


I blame Giuseppe for suggesting it :-), and nghttp2 looks really good,
can't wait to dive into it this summer! What challenges did you face when
implementing HTTP/2 in curl? I would love to hear about that.


Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-04-30 Thread Miquel Llobet
On Thu, Apr 30, 2015 at 5:41 PM, Daniel Stenberg dan...@haxx.se wrote:

 HTTP/2 over plain text is annoying with the Upgrade: and wasted RTT, it is
 much easier and simpler over HTTPS and ALPN.


Do you suggest starting off with HTTPS first then? It seems like most
client/browsers only plan to support HTTPS.

You should probably consider to make a translation layer from HTTP/2
 headers to HTTP/1 and back, so that all the header parsing and request
 generation etc can remain pretty much as-is. That's what we do in curl and
 that's how Firefox does it internally.


Great point, I'll start looking into this, thanks for all the advice! I'll
make sure to have a look at how things are implemented in curl to get an
idea.

Best,
Miquel


Re: [Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-04-30 Thread Daniel Stenberg

On Thu, 30 Apr 2015, Miquel Llobet wrote:

I'm glad to see this project come to life, and I'm happy to see you chosing 
to base it on Tatsuhiro's awesome nghttp2 library. We do this in the curl 
project too.


I blame Giuseppe for suggesting it :-), and nghttp2 looks really good, can't 
wait to dive into it this summer! What challenges did you face when 
implementing HTTP/2 in curl? I would love to hear about that.


It's been a long journey for us that began long before the protocol settled, 
and nghttp2 has also been a moving target along the way. So I'm not sure what 
good lessons i have from this that are actually transferable to your project.


Some quick things I came to think about:

HTTP/2 over plain text is annoying with the Upgrade: and wasted RTT, it is 
much easier and simpler over HTTPS and ALPN.


The fact that OpenSSL doesn't support ALPN until 1.0.2 is also annoying since 
it is still not present in lots of distros. ALPN is however getting 
implemented in many TLS libraries now so things are looking good.


You should probably consider to make a translation layer from HTTP/2 headers 
to HTTP/1 and back, so that all the header parsing and request generation etc 
can remain pretty much as-is. That's what we do in curl and that's how Firefox 
does it internally.


--

 / daniel.haxx.se



[Bug-wget] [GSoC 2015] Basic HTTP/2 support

2015-04-29 Thread Miquel Llobet
Hello all,

This summer i will be working on implementing basic HTTP/2 support as part
of Google Summer of Code! I am really excited to be working with you all
and looking forward to coding the summer away :-).

As you may already be thinking, this is no easy task! That's why the main
objective is to get a single file download working with SSL and go on from
there. This will set the bases for further development and explore the
changes required in wget. All details are laid out in my proposal [0].

The implementation of the protocol itself will come from nghttp [1], a C
HTTP/2 library. To handle networking I/O, libevent [2] will be used as
described in this sample client [3]. However I am not fully committed to
this and will try to reuse wget's code as much as possible.

I will come up with more implementation details as I read more about the
protocol and the libraries in the coming weeks, will keep you posted.
Please let me know if you have any concerns/suggestions, they are more than
welcome!

Cheers,


[0]
http://www.google-melange.com/gsoc/proposal/public/google/gsoc2015/mllobet/5629499534213120
[1] https://nghttp2.org/documentation/package_README.html
[2] http://libevent.org
[3] https://nghttp2.org/documentation/tutorial-client.html

Miquel Llobet