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

Поділитися
Вставка
  • Опубліковано 14 жов 2024
  • System Design for SDE-2 and above: arpitbhayani.m...
    System Design for Beginners: arpitbhayani.m...
    Redis Internals: arpitbhayani.m...
    Build Your Own Redis / DNS / BitTorrent / SQLite - with CodeCrafters.
    Sign up and get 40% off - app.codecrafte...
    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.m...
    Bookshelf: arpitbhayani.m...
    Papershelf: arpitbhayani.m...
    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...
    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.

КОМЕНТАРІ • 66

  • @rohitkashyap6301
    @rohitkashyap6301 7 місяців тому +3

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

  • @vishalsingh8566
    @vishalsingh8566 4 місяці тому

    No doubt the most simple and clear explanation of protocol

  • @shikharagrawal3424
    @shikharagrawal3424 7 місяців тому +4

    Never seen a better video on protocol then this!!

  • @tejasraut3550
    @tejasraut3550 7 місяців тому +4

    Nothing is more advance than basic, well explained!

  • @SauravNrai
    @SauravNrai 7 місяців тому +4

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

    • @AsliEngineering
      @AsliEngineering  7 місяців тому +3

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

  • @ashishpbhai
    @ashishpbhai 5 місяців тому

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

  • @jagannathsahu1087
    @jagannathsahu1087 7 місяців тому

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

  • @ganeshgottipati
    @ganeshgottipati 7 місяців тому +1

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

  • @ganeshgottipati
    @ganeshgottipati 7 місяців тому +1

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

  • @kritibindra4232
    @kritibindra4232 7 місяців тому +1

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

  • @joeljacob4685
    @joeljacob4685 4 місяці тому

    Beautifully explained !!

  • @raj_kundalia
    @raj_kundalia 5 місяців тому

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

  • @sunilsurana4767
    @sunilsurana4767 7 місяців тому

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

  • @vaishnav4035
    @vaishnav4035 2 місяці тому

    Thanks, Arpit

  • @TechSpot56
    @TechSpot56 7 місяців тому

    Great video, Arpit.

  • @kuldeeppanwar9950
    @kuldeeppanwar9950 7 місяців тому +1

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

  • @Manoj-wx4qo
    @Manoj-wx4qo 7 місяців тому

    Please make more videos on Internet/Web fundamentals

  • @GauravSinghvi-yu8jd
    @GauravSinghvi-yu8jd 7 місяців тому +2

    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  7 місяців тому +2

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

    • @GauravSinghvi-yu8jd
      @GauravSinghvi-yu8jd 7 місяців тому +2

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

    • @sourabhkhandelwal689
      @sourabhkhandelwal689 7 місяців тому +1

      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.

  • @samarth_patel228
    @samarth_patel228 7 місяців тому +7

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

    • @thisisamishyt
      @thisisamishyt 7 місяців тому +2

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

    • @negasonicteenagewarhead
      @negasonicteenagewarhead 7 місяців тому

      Lol

    • @sanjaycse9608
      @sanjaycse9608 7 місяців тому

      ​@@thisisamishytIts kind off high level example

    • @ItachiXSanjii
      @ItachiXSanjii 7 місяців тому +1

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

    • @thenerdycoder07
      @thenerdycoder07 7 місяців тому

      Noob engineer

  • @t1m3__
    @t1m3__ 7 місяців тому

    Thanks, it's a great explanation!

  • @chinmoykr
    @chinmoykr 6 місяців тому

    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?

  • @pinakadhara7650
    @pinakadhara7650 7 місяців тому +2

    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 5 місяців тому

      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.

  • @techdemy4050
    @techdemy4050 7 місяців тому

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

  • @codemode2925
    @codemode2925 7 місяців тому

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

  • @HarishKumar-jm5bk
    @HarishKumar-jm5bk 7 місяців тому

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

  • @chandrachurmukherjeejucse5816
    @chandrachurmukherjeejucse5816 7 місяців тому +1

    Great video sir.

  • @noraelkam7662
    @noraelkam7662 7 місяців тому

    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? :)))

  • @Engineering_101_
    @Engineering_101_ 7 місяців тому

    Thanks Arpit.

  • @rajatmishra9993
    @rajatmishra9993 7 місяців тому

    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  7 місяців тому +1

      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.

  • @nagesh007
    @nagesh007 3 місяці тому

    Thanks

  • @sampreethinkulu6684
    @sampreethinkulu6684 7 місяців тому

    Need one on TCP as well

  • @tesla1772
    @tesla1772 7 місяців тому

    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  7 місяців тому +2

      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 7 місяців тому

      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  7 місяців тому

      @@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.

  • @sagar-tt4ub
    @sagar-tt4ub Місяць тому

    Arpit, do have a discord channel?

  • @Tech-Tonic-Tales
    @Tech-Tonic-Tales 7 місяців тому

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

    • @AsliEngineering
      @AsliEngineering  7 місяців тому +2

      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 7 місяців тому

      @@AsliEngineering no problem. may be an introductory video

  • @ALI-OWAIS-JAFRI
    @ALI-OWAIS-JAFRI 7 місяців тому

    Very nice

  • @naruto5437
    @naruto5437 6 місяців тому

    gold stuff content

  • @siddhantchavan1370
    @siddhantchavan1370 7 місяців тому

    Liking before watching

  • @SurajYadav-tr1bn
    @SurajYadav-tr1bn 7 місяців тому +1

    ❤️❤️❤️

  • @nihshrey
    @nihshrey 6 місяців тому

    This is Liquid Gold.

  • @mohammedshahed5051
    @mohammedshahed5051 7 місяців тому

    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 7 місяців тому +2

      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 5 місяців тому

    Promo sm 😂

  • @birdistheword1226
    @birdistheword1226 6 місяців тому

    Please get rid of the lines where u write.