What happens before the Backend gets the Request

Поделиться
HTML-код
  • Опубликовано: 19 июн 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 RUclips
    / @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
  • НаукаНаука

Комментарии • 76

  • @hnasr
    @hnasr  Месяц назад +1

    Fundamentals of Operating Systems course oscourse.win

  • @gneyhabub
    @gneyhabub 10 месяцев назад +101

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

    • @stormsake
      @stormsake 10 месяцев назад +2

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

  • @shyampramanik780
    @shyampramanik780 10 месяцев назад +1

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

  • @shalabyx
    @shalabyx 10 месяцев назад +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 🌹

  • @pramod1591
    @pramod1591 10 месяцев назад +1

    Your channel is a gold mine of information

  • @hnasr
    @hnasr  10 месяцев назад +9

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

  • @mauriciotamez4047
    @mauriciotamez4047 10 месяцев назад

    There is so much knowledge here. ILYSM Hussein

  • @prateek2159
    @prateek2159 10 месяцев назад

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

  • @arthurmiller9103
    @arthurmiller9103 10 месяцев назад

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

  • @ahmetyasarozer
    @ahmetyasarozer 10 месяцев назад +1

    Perfect content, as usual. Thanks Hussein

  • @CodeShode
    @CodeShode 10 месяцев назад +109

    Listen at 1.75 speed.

  • @sohansingh2022
    @sohansingh2022 10 месяцев назад +4

    this helps me in my basics so much!

  • @iamansinghrajpoot
    @iamansinghrajpoot 7 месяцев назад +1

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

  • @user-ok4fx3kl6f
    @user-ok4fx3kl6f 10 месяцев назад

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

  • @cumbi-mongo
    @cumbi-mongo 8 месяцев назад

    Great content as always! Thanks a lot.

  • @gustavodeoliveira8316
    @gustavodeoliveira8316 10 месяцев назад +1

    you are a game changer.
    thanks for that man

  • @hassanmunene5406
    @hassanmunene5406 10 месяцев назад +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 10 месяцев назад

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

    • @hassanmunene5406
      @hassanmunene5406 10 месяцев назад

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

    • @leoxvic4701
      @leoxvic4701 8 месяцев назад

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

    • @abc-ym4zs
      @abc-ym4zs 3 месяца назад

      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 3 месяца назад

      @@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
    @abdullahclementabdulshekur6736 2 месяца назад

    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 10 месяцев назад

    Great material

  • @timeisnow1100
    @timeisnow1100 Месяц назад

    Great video

  • @sourav_singh_diaries
    @sourav_singh_diaries 4 месяца назад

    Crazy Good content 🔥

  • @aviadhaham
    @aviadhaham 10 месяцев назад

    you’re an asset to the world

  • @dannyhd8301
    @dannyhd8301 10 месяцев назад

    Thank you .

  • @giggleways
    @giggleways 10 месяцев назад +2

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

    • @fashionvella730
      @fashionvella730 5 месяцев назад

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

  • @karanyuvrajsingh4911
    @karanyuvrajsingh4911 10 месяцев назад

    Respect your cpu🫡

  • @lakshaybhardwaj5923
    @lakshaybhardwaj5923 10 месяцев назад

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

  • @renanoliveira0
    @renanoliveira0 10 месяцев назад

    Thanks!

  • @RichardHumulock
    @RichardHumulock 10 месяцев назад

    Hussein is such a bad ass

  • @RiversJ
    @RiversJ 5 месяцев назад

    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.

  • @pieter5466
    @pieter5466 10 месяцев назад +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.

  • @adr420
    @adr420 Месяц назад

    bro is in love with computer science :)

  • @ericstoppel4634
    @ericstoppel4634 10 месяцев назад

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

  • @samirallahverdi4948
    @samirallahverdi4948 8 месяцев назад

    Couldn't imagine these process in containerized environment :)

  • @mhmdshaaban
    @mhmdshaaban 6 месяцев назад

    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 10 месяцев назад

    You have to cover superconductor at room temp ongoing reports.

  • @AwadA-ey7pn
    @AwadA-ey7pn 7 месяцев назад

    I feel like a Staff level Software Engineer now 🎉🎉

  • @meassurendra
    @meassurendra 10 месяцев назад +3

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

  • @tekforge
    @tekforge 2 месяца назад

    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!

  • @ryanseipp6944
    @ryanseipp6944 10 месяцев назад +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

    • @samhadi7972
      @samhadi7972 10 месяцев назад

      It’s a game changer

  • @GuilhermeGavioli
    @GuilhermeGavioli 10 месяцев назад +1

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

    • @gauravaws20
      @gauravaws20 10 месяцев назад

      TCP Illustrated.

    • @GuilhermeGavioli
      @GuilhermeGavioli 10 месяцев назад

      @@gauravaws20 By W. Richard Stevens?

    • @gauravaws20
      @gauravaws20 10 месяцев назад

      @@GuilhermeGavioli yup

  • @florianvanbondoc3539
    @florianvanbondoc3539 5 месяцев назад

    The best bottleneck youtube channel :))))

  • @manindersingh5577
    @manindersingh5577 10 месяцев назад

    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?

  • @bashardlaleh2110
    @bashardlaleh2110 10 месяцев назад +1

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

  • @sauraabh
    @sauraabh 10 месяцев назад

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

  • @mehdi-vl5nn
    @mehdi-vl5nn 10 месяцев назад

    what about non-block socket

  • @usmanmaqsood5945
    @usmanmaqsood5945 3 месяца назад

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

  • @dannyhd8301
    @dannyhd8301 10 месяцев назад +1

    just when i thought i am good backend lol

  • @btm1
    @btm1 7 месяцев назад

    its called abstraction, not closing your eyes

  • @IshwarJangid
    @IshwarJangid 10 месяцев назад

    Starts at @04:00

  • @orhn
    @orhn 10 месяцев назад

    "Kenekşın"

  • @AlhassanRaad
    @AlhassanRaad 10 месяцев назад

    hello

  • @AlhassanRaad
    @AlhassanRaad 10 месяцев назад

    new

  • @alisadeghi6410
    @alisadeghi6410 10 месяцев назад +1

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

  • @nibblesnbits
    @nibblesnbits 10 месяцев назад +1

    First!

    • @gradientO
      @gradientO 10 месяцев назад +2

      17 year old account 💪

  • @vijaydhanakodi5591
    @vijaydhanakodi5591 10 месяцев назад +2

    This guy should speak with some energy.

    • @giggleways
      @giggleways 10 месяцев назад +1

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

    • @RichardHumulock
      @RichardHumulock 10 месяцев назад

      He does? lol.He speaks naturally.

  • @arpmovies3609
    @arpmovies3609 10 месяцев назад +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 10 месяцев назад +1

      to be a good one you need to know it lol

    • @arpmovies3609
      @arpmovies3609 10 месяцев назад

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