What happens before the Backend gets the Request

Sdílet
Vložit
  • čas přidán 7. 06. 2024
  • When we send a request to a backend most of us focus on the processing aspect of the request which is really just the last step.
    There is so much more happening before a request is ready to be processed, most of this step happens in the Kernel. I break this into 6 steps, each step can theoretically be executed by a dedicated thread or process. Pretty much all backends, web servers, proxies, frameworks and even databases have to do all these steps and they all do choose to do it differently.
    Grab my backend performance course performance.husseinnasser.com
    0:00 Intro
    3:50 What is a Request?
    10:14 Step 1 - Accept
    21:30 Step 2 - Read
    29:30 Step 3 - Decrypt
    34:00 Step 4 - Parse
    40:36 Step 5 - Decode
    43:14 Step 6 - Process
    Medium article
    / the-journey-of-a-reque...
    Discovering Backend Bottlenecks: Unlocking Peak Performance
    performance.husseinnasser.com
    Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)
    backend.husseinnasser.com
    Fundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)
    network.husseinnasser.com
    Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)
    database.husseinnasser.com
    Follow me on Medium
    / membership
    Introduction to NGINX (link redirects to udemy with coupon)
    nginx.husseinnasser.com
    Python on the Backend (link redirects to udemy with coupon)
    python.husseinnasser.com
    Become a Member on CZcams
    / @hnasr
    Buy me a coffee if you liked this
    www.buymeacoffee.com/hnasr
    Arabic Software Engineering Channel
    / @husseinnasser
    🔥 Members Only Content
    • Members-only videos
    🏭 Backend Engineering Videos in Order
    backend.husseinnasser.com
    💾 Database Engineering Videos
    • Database Engineering
    🎙️Listen to the Backend Engineering Podcast
    husseinnasser.com/podcast
    Gears and tools used on the Channel (affiliates)
    🖼️ Slides and Thumbnail Design
    Canva
    partner.canva.com/c/2766475/6...
    Stay Awesome,
    Hussein
  • Věda a technologie

Komentáře • 76

  • @hnasr
    @hnasr  Před 25 dny +1

    Fundamentals of Operating Systems course oscourse.win

  • @gneyhabub
    @gneyhabub Před 10 měsíci +99

    Finally, someone who's going beyond just explaining the API of the libraries! Don't stop man, you're making great content!

    • @stormsake
      @stormsake Před 10 měsíci +2

      Second this. Many others only copy paste codes without knowing what happens behind the scenes.

  • @CodeShode
    @CodeShode Před 10 měsíci +109

    Listen at 1.75 speed.

  • @shalabyx
    @shalabyx Před 10 měsíci +7

    Amazing walkthrough 👏 I can’t imagine how this would look if you explain all this steps by using one use case! Anyway it’s just amazing 🌹

  • @hnasr
    @hnasr  Před 10 měsíci +9

    Grab my new course Discovering Backend Bottlenecks: Unlocking Peak Performance
    performance.husseinnasser.com

  • @shyampramanik780
    @shyampramanik780 Před 10 měsíci +1

    This is GOLD !! Thanks Hussein for this amazing content.

  • @pramod1591
    @pramod1591 Před 10 měsíci +1

    Your channel is a gold mine of information

  • @mauriciotamez4047
    @mauriciotamez4047 Před 10 měsíci

    There is so much knowledge here. ILYSM Hussein

  • @ahmetyasarozer
    @ahmetyasarozer Před 10 měsíci +1

    Perfect content, as usual. Thanks Hussein

  • @prateek2159
    @prateek2159 Před 10 měsíci

    I missed your long videos. This one was a fab. Please keep making more such videos

  • @user-ok4fx3kl6f
    @user-ok4fx3kl6f Před 9 měsíci

    This is by far the best thing on internet!
    you're amazing!

  • @iamansinghrajpoot
    @iamansinghrajpoot Před 7 měsíci +1

    I see lot of CZcamsrs just scratch the surface and people comment you are the best.
    I like how thorough and detailed explanation you do.

  • @sohansingh2022
    @sohansingh2022 Před 10 měsíci +4

    this helps me in my basics so much!

  • @gustavodeoliveira8316
    @gustavodeoliveira8316 Před 10 měsíci +1

    you are a game changer.
    thanks for that man

  • @cumbi-mongo
    @cumbi-mongo Před 7 měsíci

    Great content as always! Thanks a lot.

  • @hassanmunene5406
    @hassanmunene5406 Před 10 měsíci +9

    Just last week we were doing an assignment on how to create a client-server architecture for a simple program That echo the requests from the client using sockets.
    We were using the c programming language and it was really interesting to learn how actually a server listens and accepts request and how it forks so as a to handle different clients while at the same time listening.
    This was what i needed to reinforce what i learnt and i felt really proud that i was actually understanding some concepts you were talking about.
    Im just a beginner in this field but i have so much fire and curiosity about the backend. I totally enjoyed this.!!❤

    • @othmanalyusifey356
      @othmanalyusifey356 Před 10 měsíci

      that makes sense , can i know where u get this assinement from ?
      is it from a course or the collage

    • @hassanmunene5406
      @hassanmunene5406 Před 10 měsíci

      @@othmanalyusifey356 yeah it's from college. The unit is called Network programming

    • @leoxvic4701
      @leoxvic4701 Před 8 měsíci

      ​@@othmanalyusifey356most likely a network engineering assignment for unix networking programming

    • @abc-ym4zs
      @abc-ym4zs Před 3 měsíci

      Where to learn this socket programming cab u recommend any good channel and where to learn about cpu and OS please bro I am facing difficulty

    • @sonugupta147
      @sonugupta147 Před 3 měsíci

      @@abc-ym4zs there is something as linux programmer's manual document. This contains all the system calls provided by the linux/unix OS which you can utilise to interact with the kernel i.e. ask for resources like memory, I/O, networking etc.

  • @abdullahclementabdulshekur6736

    I'm transitioning into backend from frontend and i wanted to learn and understand high and low level concept before building projects. and your courses have been very helpful. The netowking, backend and database engineering concepts.. have been really helpful to me. I do have a request though, a course on systems design would be great. Keep doing the good work..

  • @VincentDBlair
    @VincentDBlair Před 9 měsíci

    Great material

  • @timeisnow1100
    @timeisnow1100 Před měsícem

    Great video

  • @arthurmiller9103
    @arthurmiller9103 Před 10 měsíci

    This session is conceptually loaded and well explained. Thank you 🙏

  • @sourav_singh_diaries
    @sourav_singh_diaries Před 3 měsíci

    Crazy Good content 🔥

  • @aviadhaham
    @aviadhaham Před 10 měsíci

    you’re an asset to the world

  • @dannyhd8301
    @dannyhd8301 Před 10 měsíci

    Thank you .

  • @lakshaybhardwaj5923
    @lakshaybhardwaj5923 Před 10 měsíci

    Thanks a lot for such amazing teachings. It has been really helpful to me.. You are the best!!
    However I have a question regarding this walkthrough.. How does this complete setup and 4 queues (SYN, ACCEPT, RECEIVE, SEND) behave when there are many concurrent HTTP requests vs when there are many web socket connections (or long lived connections like SSE ) ?

  • @pieter5466
    @pieter5466 Před 10 měsíci +2

    To anyone watching this, I purchased and am partway thru 3 of Hussein's Udemy courses and they're great! Same quality walkthroughs but on a much wider variety topics.
    Only feedback would be: more evenly timed videos (some are 50mins..) and less digression off-current-topic.

  • @renanoliveira0
    @renanoliveira0 Před 10 měsíci

    Thanks!

  • @karanyuvrajsingh4911
    @karanyuvrajsingh4911 Před 10 měsíci

    Respect your cpu🫡

  • @giggleways
    @giggleways Před 10 měsíci +2

    Watching this I released more dopamine than watching a Netflix movie. ♥

    • @fashionvella730
      @fashionvella730 Před 5 měsíci

      Same here i am just consuming his content at night like i am watching NetFlix

  • @ericstoppel4634
    @ericstoppel4634 Před 10 měsíci

    ily Hussein, keep it up please. This is like steroids to my backend carreer

  • @RichardHumulock
    @RichardHumulock Před 10 měsíci

    Hussein is such a bad ass

  • @RiversJ
    @RiversJ Před 4 měsíci

    Great videos, i hopped from game dev doing lower levels where you didn't just need to understand the lower APIs but the hardware architecture to a point, in web dev you need to spend many times more effort to even just get a poorly explained abstraction of what the thing below you is doing much less a good lesson on the technology.
    Not everybody needs to be capable of lower lower coding, but I'm firmly of the opinion that understanding the layer below you is necessary to become truly good.

  • @mhmdshaaban
    @mhmdshaaban Před 5 měsíci

    You are the best Hussein. I have a question as we keep accepting connections inside a single process it will open a new file descriptor where reading and writing happen there is always a limitation to the number of open files per process even though this number is configurable it is hard to determine what is the reasonable number.

  • @pajeetsingh
    @pajeetsingh Před 10 měsíci

    You have to cover superconductor at room temp ongoing reports.

  • @adr420
    @adr420 Před měsícem

    bro is in love with computer science :)

  • @samirallahverdi4948
    @samirallahverdi4948 Před 7 měsíci

    Couldn't imagine these process in containerized environment :)

  • @manindersingh5577
    @manindersingh5577 Před 10 měsíci

    Hi sir can you tell me…if my computer is attacked with ransomware and photos and videos are encrypted…can the hackers use my photos and videos? Can they see them and import them?

  • @AwadA-ey7pn
    @AwadA-ey7pn Před 7 měsíci

    I feel like a Staff level Software Engineer now 🎉🎉

  • @meassurendra
    @meassurendra Před 10 měsíci +3

    Dude , great content. But please use some pictures, diagrams to drive message through. It gets very difficult to sit through after a while

  • @mehdi-vl5nn
    @mehdi-vl5nn Před 10 měsíci

    what about non-block socket

  • @ryanseipp6944
    @ryanseipp6944 Před 10 měsíci +1

    The io_uring part gets very interesting. Why call `accept` a bunch when you can have the kernel accept new connections automatically, and tell you about it. Why copy data on `recv` when you can have the kernel choose a buffer you've registered and tell you which one it chose. Even without these, that IO model is quite efficient when compared to epoll

  • @GuilhermeGavioli
    @GuilhermeGavioli Před 10 měsíci +1

    Is there any book reference for the tcp / network part you mentioned on the video? To help understand tcp protocol better.

  • @florianvanbondoc3539
    @florianvanbondoc3539 Před 4 měsíci

    The best bottleneck youtube channel :))))

  • @bashardlaleh2110
    @bashardlaleh2110 Před 10 měsíci +1

    you're like the only arab guy I'm proud of 😁

  • @sauraabh
    @sauraabh Před 10 měsíci

    Can I create a blog out of this video? I'll give you the credits

  • @tekforge
    @tekforge Před měsícem

    Hey Hussein, I really love the great content you share and how you share it!
    I'm also a senior software engineer who started a YT channel a few years ago and have 2 Udemy courses that I would love to dedicate more time to them to share more of what I learned in my career.
    Yet, it takes me a lot of effort to create content with the quality I'm satisfied with. When I see inspiring content creators like you, I wonder if you produce your content as a side hustle or if it's your full-time job.
    I see how you reflect and analyze things in order to understand them deeper and share lessons, but I notice also that the pressure in our full-time job as software engineers often doesn't give us enough time to reflect, analyze then share knowledge about what we learned.
    I appreciate your feedback regarding your own experience as an engineer and content creator!

  • @usmanmaqsood5945
    @usmanmaqsood5945 Před 3 měsíci

    Thank you for making things understandable for dumb developers like me :)

  • @IshwarJangid
    @IshwarJangid Před 10 měsíci

    Starts at @04:00

  • @btm1
    @btm1 Před 6 měsíci

    its called abstraction, not closing your eyes

  • @dannyhd8301
    @dannyhd8301 Před 10 měsíci +1

    just when i thought i am good backend lol

  • @alisadeghi6410
    @alisadeghi6410 Před 10 měsíci +1

    this video forcing me to write a simple backend framework to feel with my skin what is happening exactly

  • @AlhassanRaad
    @AlhassanRaad Před 10 měsíci

    new

  • @orhn
    @orhn Před 10 měsíci

    "Kenekşın"

  • @AlhassanRaad
    @AlhassanRaad Před 10 měsíci

    hello

  • @vijaydhanakodi5591
    @vijaydhanakodi5591 Před 10 měsíci +2

    This guy should speak with some energy.

    • @giggleways
      @giggleways Před 10 měsíci +1

      I like the way he talks. it gives me time to think along the way.

    • @RichardHumulock
      @RichardHumulock Před 10 měsíci

      He does? lol.He speaks naturally.

  • @nibblesnbits
    @nibblesnbits Před 10 měsíci +1

    First!

    • @gradientO
      @gradientO Před 10 měsíci +2

      17 year old account 💪

  • @arpmovies3609
    @arpmovies3609 Před 10 měsíci +1

    It's useless knowledge, cause you will never have to use it or have to know to become backed developers. 😅😅😅😅 He just read a blog about a topic and thought 🤔 to make a video of it.

    • @RichardHumulock
      @RichardHumulock Před 10 měsíci +1

      to be a good one you need to know it lol

    • @arpmovies3609
      @arpmovies3609 Před 10 měsíci

      @@RichardHumulock you are absolutely wrong. To be a good backend developer you need to know backend topics (db, concurrency, caching etc..) not os related topics which is a waste of time. It might sound cool all of this but trust me you will never have to use it in your life as a backend developer