What exactly is the HTTP protocol and how to write a new one from scratch?

Ғылым және технология

System Design for SDE-2 and above: arpitbhayani.me/masterclass
System Design for Beginners: arpitbhayani.me/sys-design
Redis Internals: arpitbhayani.me/redis
Build Your Own Redis / DNS / BitTorrent / SQLite - with CodeCrafters.
Sign up and get 40% off - app.codecrafters.io/join?via=...
In this video, I delved into the concept of protocols, focusing on HTTP as a widely used example. I explained how protocols act as a common language between machines for effective communication. By breaking down the HTTP protocol structure, I demonstrated how clients initiate requests and servers respond accordingly. Additionally, I showcased a practical demo using raw TCP connections to send HTTP messages, highlighting the importance of adhering to protocol specifications for successful communication. I emphasized the significance of understanding and potentially creating custom protocols tailored to specific needs.
Recommended videos and playlists
If you liked this video, you will find the following videos and playlists helpful
System Design: • PostgreSQL connection ...
Designing Microservices: • Advantages of adopting...
Database Engineering: • How nested loop, hash,...
Concurrency In-depth: • How to write efficient...
Research paper dissections: • The Google File System...
Outage Dissections: • Dissecting GitHub Outa...
Hash Table Internals: • Internal Structure of ...
Bittorrent Internals: • Introduction to BitTor...
Things you will find amusing
Knowledge Base: arpitbhayani.me/knowledge-base
Bookshelf: arpitbhayani.me/bookshelf
Papershelf: arpitbhayani.me/papershelf
Other socials
I keep writing and sharing my practical experience and learnings every day, so if you resonate then follow along. I keep it no fluff.
LinkedIn: / arpitbhayani
Twitter: / arpit_bhayani
Weekly Newsletter: arpit.substack.com
Thank you for watching and supporting! it means a ton.
I am on a mission to bring out the best engineering stories from around the world and make you all fall in
love with engineering. If you resonate with this then follow along, I always keep it no-fluff.

Пікірлер: 62

  • @shikharagrawal3424
    @shikharagrawal34244 ай бұрын

    Never seen a better video on protocol then this!!

  • @rohitkashyap6301
    @rohitkashyap63014 ай бұрын

    Just came across this channel because my friend told me to check, this is undoubtedly one of the best programming channels out there!

  • @TechSpot56
    @TechSpot563 ай бұрын

    Great video, Arpit.

  • @vishalsingh8566
    @vishalsingh8566Ай бұрын

    No doubt the most simple and clear explanation of protocol

  • @kuldeeppanwar9950
    @kuldeeppanwar99504 ай бұрын

    great in-depth explanation. amazing.......

  • @raj_kundalia
    @raj_kundalia2 ай бұрын

    Thank you so much, had an idea but you clarified it more!

  • @Engineering_101_
    @Engineering_101_4 ай бұрын

    Thanks Arpit.

  • @chandrachurmukherjeejucse5816
    @chandrachurmukherjeejucse58164 ай бұрын

    Great video sir.

  • @joeljacob4685
    @joeljacob468526 күн бұрын

    Beautifully explained !!

  • @jagannathsahu1087
    @jagannathsahu10874 ай бұрын

    i didnt know this, every developer should know this.good video.thanks

  • @t1m3__
    @t1m3__3 ай бұрын

    Thanks, it's a great explanation!

  • @tejasraut3550
    @tejasraut35504 ай бұрын

    Nothing is more advance than basic, well explained!

  • @sunilsurana4767
    @sunilsurana47673 ай бұрын

    Awesome explanation. Lot of concepts got cleared. What software you use to create this presentation?

  • @user-ob1zi3jc1r
    @user-ob1zi3jc1r4 ай бұрын

    Great Video Sir! Can you explain how REST and SOAP rely on it or developed based on it?

  • @ashishpandey3505
    @ashishpandey35052 ай бұрын

    Such a nice explanation with a simple example. You are a good teacher!! Keep doing more of it. Thanks for making this one :)

  • @AsliEngineering

    @AsliEngineering

    2 ай бұрын

    Thank you Ashish 🙌

  • @user-ob1zi3jc1r
    @user-ob1zi3jc1r4 ай бұрын

    Great Video Sir! Can you explain how REST and SOAP emerged out of it?

  • @kritibindra4232
    @kritibindra42324 ай бұрын

    Very easy to understand and follow. Next time I'll have an answer if somebody asks me what is a protocol :p

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Thank you Kriti 🙌

  • @Manoj-wx4qo
    @Manoj-wx4qo4 ай бұрын

    Please make more videos on Internet/Web fundamentals

  • @codemode2925
    @codemode29254 ай бұрын

    thanks for these videos. also liking and commenting on this video, so that the algo pushes more such videos on my feed. Please youtube.

  • @SauravNrai
    @SauravNrai4 ай бұрын

    Amazing! Would love to see an RFC explanation in depth from you 😄

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    hahah. I did one for REST, but very few watched it :) kya hi kare!

  • @ALI-OWAIS-JAFRI
    @ALI-OWAIS-JAFRI3 ай бұрын

    Very nice

  • @siddhantchavan1370
    @siddhantchavan13704 ай бұрын

    Liking before watching

  • @noraelkam7662
    @noraelkam76623 ай бұрын

    Can you please show me how to use p5.js to create an algorithm that draws the Sierpinski triangle. where it is possible to select the number of generations before the program is run? :)))

  • @techdemy4050
    @techdemy40504 ай бұрын

    Can you please make a video on Gorilla DB as well. I am facing some difficulty in understanding Gorilla DB research paper.

  • @samarth_patel228
    @samarth_patel2284 ай бұрын

    Defining API can be considered equivalent of defining our own protocol.

  • @thisisamishyt

    @thisisamishyt

    4 ай бұрын

    i don't think so. you follow a protocol to write your api.

  • @negasonicteenagewarhead

    @negasonicteenagewarhead

    4 ай бұрын

    Lol

  • @sanjaycse9608

    @sanjaycse9608

    4 ай бұрын

    ​@@thisisamishytIts kind off high level example

  • @ItachiXSanjii

    @ItachiXSanjii

    4 ай бұрын

    Nope. When you Define API, you just define endpoint. When client hit that API, it comes via PROTOCOL to your endpoint.

  • @thenerdycoder07

    @thenerdycoder07

    4 ай бұрын

    Noob engineer

  • @chinmoykr
    @chinmoykr3 ай бұрын

    I have one question: When you establish a manual connection, does that TCP connection stay alive until you manually close it by using Ctrl+C? What happens in the case of requesting using curl or a browser? Does it close the TCP connection as soon as the response is received?

  • @sampreethinkulu6684
    @sampreethinkulu66844 ай бұрын

    Need one on TCP as well

  • @HarishKumar-jm5bk
    @HarishKumar-jm5bk4 ай бұрын

    Hey arpit I love your videos please can u make series on golang backend

  • @SurajYadav-tr1bn
    @SurajYadav-tr1bn4 ай бұрын

    ❤️❤️❤️

  • @pinakadhara7650
    @pinakadhara76503 ай бұрын

    At 10:12, is the server hit after mentioning content length as 28? I always assumed HTTP requests are fully prepared on the client side and then the connection is established with the server and the server receives it in one go and doesn't have to wait!

  • @pinakadhara7650

    @pinakadhara7650

    2 ай бұрын

    To answer my own question, for anyone else wondering the same - a TCP connection is established in the very beginning through a TCP handshake and the connection is kept open throughout the request-response life cycle.

  • @naruto5437
    @naruto54373 ай бұрын

    gold stuff content

  • @tesla1772
    @tesla17724 ай бұрын

    Hey Atpit, one question, At 6:22 you said that the error was emitted by golang server. But, how did the request reach golang server without passing an hostname

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    The request went over TCP. Host header does not mean it needs to go there. It is just a cosmetic header which tells from where the request is originating. Most framework does not require it. Try doing this with flask. You will see it does not throw error due to missing host header

  • @devsami

    @devsami

    4 ай бұрын

    Just to understand better, so we used the netcat to establish a TCP connection on the localhost address on the 1729 port. But the Host header is part of the Request Header, which is specific to the Go http server, right?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    @@devsami Yes. It is Go's default HTTP server that returned bad request if it did not see hot header. Flask does not give that error.

  • @rajatmishra9993
    @rajatmishra99934 ай бұрын

    Can you make a video on GRPC as well? GRPC does not have GET/PUT etc etc but still is http 2.0. How does that work?

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Grpc is built on top of http2. So the payload that is sent in message comtains the required metadata that a grpc server can interprete and understand which method to call and which arg. I have a video on RPC in my channel which can be a good starting point for you.

  • @GauravSinghvi-yu8jd
    @GauravSinghvi-yu8jd4 ай бұрын

    Sir i am following you since a few months. I have a really important question to ask You mentioned many times that you have built some core projects, not some web or app, like using some FUSE, PINTOS etc. It sounds great but at the same time is overwhelming, like I don't know how to go about them. You have also answered that just start coding, but please can you explain a bit about what can be a starting point and how should be proceed. I know you don't believe in some roadmap or like that , but any advice from you in that direction would be really appreciated. And I am now in final year, looking for placements. Now i think i don't have so much time to do no-fluff engineering

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    Placements are important, focus on what matters the most today. Everything else can wait.

  • @GauravSinghvi-yu8jd

    @GauravSinghvi-yu8jd

    4 ай бұрын

    @@AsliEngineering But still sir please answer the above quesn too

  • @sourabhkhandelwal689

    @sourabhkhandelwal689

    4 ай бұрын

    I am not Arpit, but my answer would be that start small. If you've been following Arpit, you would know that he has always advised us to find small opportunities for implementation. So instead of jumping into implementing a file system right away, focus on how you can build the tiny stuff first. For example, how about writing a scheduler? You can not bench press 100 on the first day, it's going to take a long time to build that muscle. Likewise, it's natural that you would find these projects overwhelming if you aren't habitual of getting your hands dirty.

  • @nihshrey
    @nihshrey3 ай бұрын

    This is Liquid Gold.

  • @mohammedshahed5051
    @mohammedshahed50514 ай бұрын

    Content is good but instead of explaining http methodologies are, i would have appreciated what exactly http protocol is, like for ex: ambiguity == having multiple meanings making it clear. For ex: im in a interview they ask me what exactly is http protocol is, i say, it have these specs (get, post, ), client initiates the request, content is served etc...... they will be like no that is what http means that is again a method of http, what exactly is HTTP? me -> :( , Again no offence arpit, i love the way you to teach, you are an absolute SME.

  • @gauravaws20

    @gauravaws20

    4 ай бұрын

    it is a protocol. a standard of communication using which a client and server can talk to each other. http is hyper text transfer protocol. you should be able to find what hyper text means, transfer and protocol must be clear now.

  • @jarrett2513
    @jarrett2513Ай бұрын

    Promo sm 😂

  • @birdistheword1226
    @birdistheword12263 ай бұрын

    Please get rid of the lines where u write.

  • @Tech-Tonic-Tales
    @Tech-Tonic-Tales4 ай бұрын

    Can you please please make an indepth video on CDN(content delivery network )

  • @AsliEngineering

    @AsliEngineering

    4 ай бұрын

    There are some topics that I go in depth in my courses and hence cannot put them out on YT. CDN is one of them. We spend about 2 hours understanding it end to end. Apologies but I hope you understand.

  • @Tech-Tonic-Tales

    @Tech-Tonic-Tales

    4 ай бұрын

    @@AsliEngineering no problem. may be an introductory video

Келесі