 So My top will be about API in the HTTP world so before I can start maybe I can ask a question how many of you's are web developers Like okay, that's a lot. How many of you have written or contribute to a web server yourself? Or you have like written a web server Okay, lucky me. I don't have some tough questions and Because this talk is not about like how do you implement HTTP 2 or how do you write a web server in HTTP Following the HTTP 2 specification because HTTP 2 has come along in 2015 the specification so it's quite standard my talk will be focusing on how how it is used in the real life so to start To start I will talk about the story of HTTP the history and then I will talk about a High-level introduction of HTTP 2 what are the key points we need to take techno and then I will Talk something relate to What are the tools we use? What are the tools we use? What are the tools that use HTTP 2 and some case studies at last? Let's talk about what are the future First of all, let's go back to 1991. So this guy is the father of Internet at 1991 when Internet was first set up I think at the time there is no browser The only thing we are going to View is just some hypertext document. So here comes the first HPP protocol, which is 0.9 We can call it the one-line protocol as you can see from the example here It's quite simple. You just tell the URL and then the server will return you the Hyper documents and then the connection will close. So it's it's just as simple because at the time there's Not much things so Time flies now we come to 1996 during that five years basically There is a lot of rapid growth of the protocol itself as well as something Something new has come out, which is the web browser So at that time the National Center Super computing applications and say SA for short has come out with a newer version Which is 1.0 at this time the hiders has come in which we are quite familiar and At that time you can response more than just hypertext like for them how you can respond with a picture But still every connection will close after you send the request After you receive the response So what they are leaving now is at the age of Internet standard, which is 1.1. There are a lot of improvement has been added Some known ones are the keep alive Keep alive connections Request pipelining and as well as the trunk response so as you can see from the example here after you the client has sent the request to the server so server can choose to Stand back the response in chunks and after sending the request we can still keep the connection open for reuse so this has improved the speed a lot, but There's still a lot of 10 points basically Obviously because from 1999 until today is 20 years has passed a lot of new things have been introduced like for example if you are doing live streaming you need to reply to the client of videos and Because of the website has grown as well So the number of the document we need to transfer also become larger and the larger. That's why Even though we there are a lot of a lot of improvement from HTTP 1.1 still we will sometimes please some Sloanese or loading times and HTTP 1.1 has become so huge that not every server can implement all the features from it So at this time we want something new which is the HTTP 2 the key features of HTTP 2 basically can summarize in three main things If you want to know more details, you may read the specs yourself but I will just give you three main reason first one will be the banner it is a binary protocol that means is unlike the HP 1 version we can read the request and the response ourselves this time the request and response is not human readable It's binary and there is something new called multiplexing which means the server Well, you are well the client sending the request the server can also send the response back already and You also have some promising features like server push and header compression Later, I will link back to this when I talk about the use case So talking about what is using HP 2 the first thing come to our mind, of course is browser actually Chrome will be the first browser implementing HP 2 because HP 2 actually comes large large from the Google speedy protocol and as you can see from the Diagram here. Chrome is the first one and Until now most of the browser has support HCP 2 already beside that most of the servers like Apache or NGX or even Microsoft Web server has already support HCP 2 for in the programming world like for them for Node.js and Golang has already native support at for the HCP 2 as well and even the large Content net content delivery network like Amazon cloud front of us Lee has support HP 2 as well So let's come to our first use case is still Sorry, there's a minute. Let me open the internet As you can see at the time that the people are promoting HCP 2 they have written two demo case for the browser to see the See the difference to know the speed between HCP 2 and HCP 1 so If let's go to this web page This is how loading is done by HCP 2 is around 70 milliseconds. Let's go to HCP 1. I'm still waiting Yeah, that's how the difference it is So this is from the browser another use case will be in the IOT world Basically last year Amazon has released their product, which is the Amazon Alexa The idea is your Alexia device will capture your audio and then send back the audio to back-end service for processing and then the After the processing the response will send back to your device and the device will play back the audio So let's imagine if we are doing this using HCP one every every time you finish the Sending the audio request to the back-end and Receive the response you need to create another connection, which is quite Not a good sign and I'm sure it will be slow as well So that's why I'm a don't has chosen HCP 2 as their base to build this Alexia device This is that Google had has come out with the RPC framework Last year as well and the base for it is also HCP 2 Personally, I think the reason why they choose HCP 2 is because GRPC use protocol buffer and Protocol buffer itself is binary for serialization. So it's a perfect match Why not just leverage on the binary protocol for HCP 2? I think this framework can Be another talk as well. So if we have any Experts in this field next time you can give a talk on this as well so for the future Before HCP 2, I think if we want to do a real-time Communication, we will always think of WebSocket also KIO and in the IoT world There is always the UDP protocol, which is MQTT I think most likely this tree might be replaced over, but it's just my guess On the other hand Google is always pushing to the new ends So now they are coming out with something called quick UDP interaction connections This so what Google has done is on the TCP side, they have already improved the performance Allow so now they want to do something with UDP and there is always WebRTC as well So in the future, maybe they will come with HTTP tree that combine all this together That's my guess for the future so here are the reference and Do you guys have any questions? Actually from what I think most likely whatever you your browser has connected to the server is only using one TCP connection. Yeah, yeah Actually, I'm not sure whether I can show the demo for the Yeah, because of the internet problem I think, yeah, maybe some other time I can show the demo for Amazon and Alixia Okay Yeah, because a lot of Yeah, not everybody has upgrade to HV to yeah Yeah, I think that's the end of my talk. Thank you