Coding a Web Server in 25 Lines - Computerphile

Sdílet
Vložit
  • čas přidán 21. 02. 2024
  • Just how simple can a web server be? Laurence Tratt, Shopify / Royal Academy of Engineering Research Chair in Language Engineering at Kings College London builds it up.
    More about Laurie: bit.ly/C_LaurenceTratt
    / computerphile
    / computer_phile
    This video was filmed and edited by Sean Riley.
    Computer Science at the University of Nottingham: bit.ly/nottscomputer
    Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharanblog.com
    Thank you to Jane Street for their support of this channel. Learn more: www.janestreet.com

Komentáře • 662

  • @AndreDeLimburger
    @AndreDeLimburger Před 3 měsíci +811

    The joy of modern programming languages. Listening on a socket in just one line.

    • @sumantagogoi
      @sumantagogoi Před 3 měsíci +86

      yep.. that itself was the main trick... that one line.. tcp listen..

    • @aawwmm
      @aawwmm Před 3 měsíci +55

      java had that in 1995... ServerSocket for those asking
      After looking into c it has Socket.h so even in c its there...

    • @dexio85
      @dexio85 Před 3 měsíci +50

      It's not a programming language, it's the set of libraries it comes with. I think you are confusing two things here.

    • @AndreDeLimburger
      @AndreDeLimburger Před 3 měsíci +19

      The standard libraries that come with the language, are they considered part of the language?

    • @rogo7330
      @rogo7330 Před 3 měsíci +24

      It's two syscalls to Linux kernel too. Not so heavy to implement that in any language that allows to do syscalls.

  • @samwalker4438
    @samwalker4438 Před 3 měsíci +542

    I loved Laurie’s smile each time he wrote something he knew was absolutely dodgy!

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

      I write webservices for a living and I have that same energy when realizing I can cheat the system and completely ignore convention.

  • @uuu12343
    @uuu12343 Před 3 měsíci +553

    He is a gift that keeps on giving
    A fundamental explanation of making a simple webserver in 25 LOC for easy understanding of its components
    A lecturer that
    1. Uses Rust
    2. Uses a framework laptop
    3. USES NEOVIM
    very nice

  • @wildwestrom
    @wildwestrom Před 3 měsíci +173

    Programming Rust on a Framework laptop running OpenBSD. Absolutely based.

    • @gg-gn3re
      @gg-gn3re Před 3 měsíci +23

      neovim and looks like alacritty as well

    • @udasai
      @udasai Před 2 měsíci +6

      I fully expected Python, the Visual Basic of the modern age. It's the only reason I clicked the link, to see if I was right, since for any modern environment you can write a "web server" with three statements: import web library, set default response string, invoke the listener.

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

      incredibly based.

    • @hachikuku_
      @hachikuku_ Před 2 měsíci +5

      you all sound like reddit and hn nerds absolutely cooming over a dude's setup.

    • @gg-gn3re
      @gg-gn3re Před 2 měsíci +2

      @@hachikuku_That's the point, poindexter.

  • @OldShatterham
    @OldShatterham Před 3 měsíci +284

    Honestly I didn't expect the fundamentals of HTTP to be so easy. This sort of "from-the-ground-up" approach was really fun to watch!

    • @GottZ
      @GottZ Před 3 měsíci +17

      email is of similar complexity.

    • @Faladrin
      @Faladrin Před 3 měsíci +16

      Sure, when you have libraries in place that do all the actual on the ground stuff we don't see in the video.

    • @collinswisher6566
      @collinswisher6566 Před 3 měsíci +13

      @@Faladrinreally the only library he used was the tcplistener implementing the protocol was all up to him.

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

      There's a degree of knowing I.T. being seen as knowing how to use Word and Excel. Been this way for a couple of decades at least. Very few people seem to know the basics.

    • @FinalManaTrigger
      @FinalManaTrigger Před 3 dny

      What you don't see is just how involved the library calls are, there's tons more lines of code behind the listner, for example.

  • @vercolit
    @vercolit Před 3 měsíci +123

    I had this professor for a few lectures in my undergrad during covid. He was very enthusiastic, funny and explained things really well. He was also was explaining concepts with his neovim + rust setup. Happy to see him again on computerphile!

  • @vincei4252
    @vincei4252 Před 3 měsíci +1383

    You can build the web server in one line of code if you put your 25 lines of code in a library. 😂

    • @ai-spacedestructor
      @ai-spacedestructor Před 3 měsíci +94

      or write all of the code in one line, even if we dont strip down the server to the bare minimum, a full server is still just 1 line of code if you format it in such a way that its all on the same line.

    • @vincei4252
      @vincei4252 Před 3 měsíci +63

      @@ai-spacedestructor isn't every application just one line of code/one function? main() {... } It's turtles all the way down.

    • @mail2ajm
      @mail2ajm Před 3 měsíci +36

      Low level programmer:

    • @ai-spacedestructor
      @ai-spacedestructor Před 3 měsíci +4

      @@vincei4252 depends on the programming language, im not too familiar with rust to know how that is exactly.

    • @zfold4702
      @zfold4702 Před 3 měsíci +8

      Nodejs😂

  • @dylanmeeks54
    @dylanmeeks54 Před 3 měsíci +614

    Rust user? Framework laptop owner? Based prof.

    • @KarunaMurti
      @KarunaMurti Před 3 měsíci +55

      Bet prof use Arch too btw.

    • @Lb8068
      @Lb8068 Před 3 měsíci +30

      Based on what?

    • @beatboy6690
      @beatboy6690 Před 3 měsíci +88

      Rust user, framework laptop and vim user. Mega based

    • @toby2581
      @toby2581 Před 3 měsíci +40

      Wonder when he's getting his bottom surgery.

    • @UnevenMike
      @UnevenMike Před 3 měsíci +25

      And neovim and firefox

  • @NetherFX
    @NetherFX Před 3 měsíci +67

    The funny thing is, there's an async tutorial in the Rust Book that explains how to use threads with a web server do handle 4 workers. If I remember correctly it's not even 10 lines more. Would've been a cool addition!

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

      which rust book?

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

      @@Gnarksonshould be chapter 20 in "the book" (referring to the official book)

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

      @@NetherFX thanks

  • @nullptr.
    @nullptr. Před 3 měsíci +33

    You can tell this guy loves what he does. Thanks for the video!

  • @halfsourlizard9319
    @halfsourlizard9319 Před 3 měsíci +210

    'I am abusing this monstrously.' == always the sign of well-written code.

    • @TAP7a
      @TAP7a Před 3 měsíci +28

      “What I’m doing is a crime against silicon” = writing some of the most ingenious code possible to write

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

      No, not even close

    • @phill6859
      @phill6859 Před 3 měsíci +2

      ​@@TAP7aif you think it's ingenuous then it's more about what you think than the code itself.

    • @kevinmcdonough9097
      @kevinmcdonough9097 Před 3 měsíci +1

      Genius or, more likely, brittle code only workable by the original author. Could be either. Could be both.

    • @halfsourlizard9319
      @halfsourlizard9319 Před 3 měsíci +1

      @@kevinmcdonough9097 Oh, very probably both 😜

  • @pmmeurcatpics
    @pmmeurcatpics Před 3 měsíci +46

    Don't know if it's a coincidence, but the code really reminded of the one in the first chapters of the Rust Book - Building a Multithreaded Web Server. I've just been reading it a couple of weeks ago, and can definitely recommend taking a look if you're interested! Though it's worth mentioning that the code does contain some difficult Rust

    • @vincei4252
      @vincei4252 Před 3 měsíci +1

      Difficult Rust can't be as bad as "modern" C++ with templates and meta-programming? Can it?

    • @pmmeurcatpics
      @pmmeurcatpics Před 3 měsíci +5

      @@vincei4252 unfortunately I can't make this comparison since I barely know C++, let alone "modern" C++. Rust does meta-programming using things called macros - from what I've heard, they're quite powerful and reasonably easy to understand? Though they're definitely WIP, so there're a couple of rough edges here and there. There was a talk recently, called something like "Anything you can do, I can do it worse with macro_rules!", where the host showed a somewhat extreme example - a macro they created that can automatically create a fully functional XML representation of a token tree of Rust code

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

      This code will be very similar on any language, really. Even the ones with no sugar added.

    • @TAP7a
      @TAP7a Před 3 měsíci +2

      @@vincei4252they’re as bad as each other syntactically, Rust is probably a little more coherent, but the precision demanded by the Rust compiler is simultaneously much more reassuring and frustrating. Whereas modern C++ is less coherent, but quicker to get running, but only if you accept all the footguns that come with it.

  • @TheHenrik225
    @TheHenrik225 Před 3 měsíci +25

    Great format for explaining web servers. Those 17 minutes flew by

  • @teej_dv
    @teej_dv Před 3 měsíci +155

    TELESCOPE USED!! LETS GOOOOOOO!!!!!

    • @mjhika
      @mjhika Před 3 měsíci +4

      TELESCOPE!!!

    • @Pbertrand_dev
      @Pbertrand_dev Před 3 měsíci +11

      wait arent you teej the creator of telescope but you also stream on twitch?

    • @n0kodoko143
      @n0kodoko143 Před 3 měsíci +2

      Telescope, Lets GOOOOOO

    • @RenXZen
      @RenXZen Před 3 měsíci +5

      timestamp 1:51 woooooooooooo

    • @DamnitDutch
      @DamnitDutch Před 3 měsíci +5

      🔭 NeoVim without Telescope LITERALLY unusable 🔭

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

    This was awesome. I was a programmer, now a DBA. Having someone explain code like this is what a learning experience should be.

  • @Lurco8
    @Lurco8 Před 3 měsíci +4

    Fantastic content, that's what I was always missing in the "basic" server setup - the way the server actually functions!

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

    Even before the rest was completed, just the bit that sent back "Hello Computerphile" was totally amazing to me.

  • @joaopedrorocha4790
    @joaopedrorocha4790 Před 3 měsíci +1

    I love this guy's computherphile videos! He's always very clear and bring practical stuff.

  • @linuxguy1199
    @linuxguy1199 Před 3 měsíci +27

    Nice! One of my first projects was writing my own webserver in Java, later added PHP support and used it to host my website.

    • @andiuptown1711
      @andiuptown1711 Před 2 měsíci

      How did making a Java web server go? Any tips?

  • @Norman_Fleming
    @Norman_Fleming Před 3 měsíci +33

    it is important to remember that whichever end you are writing, you need to consider the other end a bad actor or buggy AF.

    • @Ebiko
      @Ebiko Před 3 měsíci +1

      That's what he's saying.
      He's ignoring any safety concerns for this example like error handling or exploit fixing

  • @pedroth3
    @pedroth3 Před 3 měsíci +4

    Like all computerphile video of Dr Laurence Tratt. Great work!

  • @sneaksneak6522
    @sneaksneak6522 Před 3 měsíci +1

    Awesome video, great job at explaining the questions asked. Absolute chad energy Laurence
    Please do more videos like this!

  • @comosaycomosah
    @comosaycomosah Před 3 měsíci +20

    this channel is fire tbh

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

    Best channel in you tube ... i am surprised by how well and simply everything is explained. I don't use rust but i already figured out how to do it in Python!

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

    Absolutely amazing! Thank you very much, Mr. Tratt.

  • @user-ut2jy4fe2m
    @user-ut2jy4fe2m Před 2 měsíci

    Although my English is not good, I spent an afternoon watching and learning from this video. This video is really simple and easy to understand for beginners like me.

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

    I always recommend everyone trying to one up their programming skill is to create web server using the HTTP spec. It really teaches a lot about what programming is. There is a document that you have to follow and the expected behaviour, how you handle edge cases, how you optimize some algorithm, etc. Why HTTP and not anything else is jusy because the sheer number of implementation available that you can use as a reference.

  • @ayanSaha13291
    @ayanSaha13291 Před 2 měsíci +1

    Learnt something nice today! Thanks for uploading, Lastly the authors enthusiasm regarding his craft was quite infectious.

  • @smccrode
    @smccrode Před 3 měsíci +5

    Great video! If you want to remove the duplicate INSERT mode you can add: set noshowmode into your config.

  • @MyCodingDiarie
    @MyCodingDiarie Před 3 měsíci +1

    Wow, this is exactly what I needed. You're a lifesaver!

  • @MegaAresik
    @MegaAresik Před 2 měsíci +1

    Didn't expect the video to include the Rust programming language. As always valuable materials presented for pure knowledge:)

  • @daze8410
    @daze8410 Před 3 měsíci +36

    @ThePrimeTime needs to see this

    • @taylorswe
      @taylorswe Před 3 měsíci +14

      the "I'm abusing this monstrously - agen"

    • @romevang
      @romevang Před 3 měsíci +6

      I think he watched it on today’s stream, we’ll see if it gets posted.

  • @TallMoose
    @TallMoose Před 3 měsíci +7

    Great video! Just a few weeks ago my collegues and I were chatting about a web project I was working on, and the question of "How exactly does a web server even work?" came up. At the time we didn't look too deep into it, since we are all high level programmers who don't remember our college days. This really pointed out how simple you can really do it!

  • @jearl961
    @jearl961 Před 2 měsíci +4

    Love seeing Rust on the channel! Not a big fan of his variable names though.

  • @AliciaSykes
    @AliciaSykes Před 3 měsíci +13

    Me expecting him to run `npx http-server index.html` and be done with it 😆
    Great video, thanks Laurence!

    • @philrod1
      @philrod1 Před 2 měsíci +3

      25 lines of code plus 4.6 gigs of node packages for some reason 😂

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

    awesome. even though i am a fullstack dev, this seemed always daunting and i never wanted to look into it but its actually super super easy. really well made!

  • @SrFrancia0
    @SrFrancia0 Před 3 měsíci +4

    You didn't have to flex your vim skillz that hard lmao what a legend. Also noticed the framework laptop

  • @Simon-ir6mq
    @Simon-ir6mq Před 3 měsíci

    This was really nice! I'm so used to getting everything low-level served to you as a library call when you actually need so little of the library you could just do the thing yourself.

  • @AndrewTSq
    @AndrewTSq Před 3 měsíci +1

    Loved this episode!. Thanks.

  • @cthoadmin7458
    @cthoadmin7458 Před 24 dny

    Tried it and damn! It worked! Utterly brilliant. What a fantastic way to learn! Yesterday it was Rust hello world for me, now I have a basic web server running.

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

    Great to see someone coding in rust! Thank you. 🙏🏻

  • @Meow_YT
    @Meow_YT Před 3 měsíci +51

    "In 25 lines" is doing a lot of heavy lifting with those libraries wrapping so much networking code.

    • @CramBL
      @CramBL Před 3 měsíci +11

      "Those libraries" he's using one library and it's the relatively tiny Rust standard library. Try writing to stdout in less than 25 lines without calling 50 lines of C or another binary that does just that.

    • @zerker2000
      @zerker2000 Před 3 měsíci +11

      ​@@CramBLNot wrong in spirit, but "call the SYS_WRITE syscall" is like 5 lines of assembly, or a hardware serial port equivalent in low-level systems

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

      ​@@CramBLOh stop. It's just a bait title. So much is going on behind the scenes. People slowly forgetting how much work has been done by others in the past, and it boils down to "in 25 lines". It's a bit tiring. And it's all going to be forgotten if anything major happens and people don't know how to fix the problems. Cos all we'll have are the imports and no one knows the magic inside. Just 1 billion lazy devs that know the 25 lines.

    • @gg-gn3re
      @gg-gn3re Před 3 měsíci

      @@CramBL yea and try doing it without a kernel, that's even more lines!

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

      Libraries like... the kernel??? That's where the whole IP stack and sockets are implemented. Even in assembly this code wouldn't be massively longer.

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

    no way y’all happened to upload the exact type of thing i’ve been looking for lately

  • @VivekYadav-ds8oz
    @VivekYadav-ds8oz Před 3 měsíci +9

    Glad to see Rust having reached a point where it's no longer "Building a web server in Rust" but just building a web server, oh and btw we chose this whatever language because it's mainstream enough and understandable enough to not take away from the main point of the lesson.

    • @em_the_bee
      @em_the_bee Před 5 dny

      I'm sorry, you forgot to add .unwrap() and a semicolon, so your comment does not compile

  • @SoreBrain
    @SoreBrain Před 3 měsíci +1

    Great video, loved it!

  • @dehrk9024
    @dehrk9024 Před 2 měsíci

    I love listening to these smart people it's so motivation and takes you into the presence, sharpening your mind..

  • @PatrickPoet
    @PatrickPoet Před 2 měsíci +1

    "you could call it a good listener," you startled a laugh out loud out of me:) Thanks.

  • @sundhaug92
    @sundhaug92 Před 3 měsíci +4

    One difficulty with supporting multiple sites in a webserver is that you have to support it using both raw HTTP ... and TLS SNI (ServerName Indication) and ideally TLS ESNI (Encrypted SNI)

  • @yugshende3
    @yugshende3 Před 3 měsíci +1

    I like this transition. We went from Perl one liners or insane algorithimic one liners to now people applying creativity to web servers and api designs. I was just thinking about how computer science is getting boring nowadays but I’m glad that there’s still a few breaths left until it totally becomes the next accounting-esque profession.

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

      I’m not sure it will ever be an accounting-esque profession. The amount of creativity involved and flexibility of tooling, and solutions are always going to be more open ended than accounting.

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

      @@sofianikiforova7790 I agree but I think the creativity part of it is tied behind the language. once people can code in their native languages I think more or less the syntactical accuracy will become a matter of just putting the right structure in place. So, more or less like accounting. Similarly how people still do creative stuff with accounting (eg new ways of building ledgers like crypto) but the basic premise has converged onto a more or less singular agreed-upon convention. Computer Science was fighting that premise at its very core I think with several languages and several programming paradigms. But with the advent of AI the programming paradigms or "code structure" might become meaningless. A computer for example doesn't care if the JS file is minified or beautified. We do.

  • @rkin2009
    @rkin2009 Před 3 měsíci +1

    I don't know why, but I just thought about how to make a web server and this video came up. What a coincidence!

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

    Love seeing the framework laptop!

  • @HarryHelsing
    @HarryHelsing Před 3 měsíci +23

    Rust and Neovim, I like your style.

    • @PbPomper
      @PbPomper Před 3 měsíci +2

      Can't get used to Rust syntax.

  • @MyCodingDiarie
    @MyCodingDiarie Před 3 měsíci +1

    I wish I could give this video more than one like. It's that good!

  • @addas4
    @addas4 Před 3 měsíci +2

    Thank you! You gave me courage!

  • @DoRullings
    @DoRullings Před 3 měsíci +14

    They could do a http path traversal, e.g.: [address to server]/../../../../etc/passwd

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

      I think you could just start with // to get to the root

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

      He acknowledged this insecurity.

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

      @@sofianikiforova7790 Yes he does. I only showed one way to access directories you don't want other people to access. It wasn't meant as a "gotcha" moment. 😉

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

      ​@@Turalcar I'm not sure if it would have worked on that server, tbh. In any case, I would have written the comment in the same way as it makes it easier to read/recognize, and CZcams comments are not suitable for this as anything resembling a URL is easily caught by the scam filter.

  • @MJ-xh8co
    @MJ-xh8co Před 3 měsíci

    I did the same project for a distributed systems course. What a great small project.

  • @chyldstudios
    @chyldstudios Před 3 měsíci +1

    simple and to the point. nice!

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

    First of all, fantastic video. It's amazing how you managed to simplify such a complex topic.
    Second of all - as a software engineer - your corner cutting made my skin crawl. 😅

  • @bersl2
    @bersl2 Před 3 měsíci +12

    0:34 I am currently waist-deep in the Apache internals at work, so I can attest to this.

  • @shad0wman
    @shad0wman Před 2 měsíci +1

    ive always loved how "gobblygoop" is an official industry term

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

    You have taught more about general services (it doesn’t have to be for web) than college ever did for me

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

    Very nice. Loved the video,

  • @jvoynar5826
    @jvoynar5826 Před 3 měsíci +1

    Thanks for the beginner friendly Rust tutorial!

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

    Neovim for the win! That's some serious productivity!

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

    Recreated it in python and learned a lot. Thank You!

  • @dotdotlar
    @dotdotlar Před 3 měsíci +1

    What (Neo)Vim plugins did you use? That’s a great looking setup.

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

    Crazy to think we've abstracted all the low level aspects for creating a web server. Just going through all the standards/protocols invented to get this web server going that looks simplistic would take a lot of computer science courses to get a deep understanding of it all.

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

    Very nice explanation.

  • @ollienx
    @ollienx Před 3 měsíci +1

    What's the line merging referred at 7:30? I don't think I've ever heard of that

  • @rtdietrich
    @rtdietrich Před 2 měsíci +1

    Very nice! thank you

  • @DevduttShenoi
    @DevduttShenoi Před 3 měsíci +16

    This guy's the kinda professor I wanted all my academic life!
    nvim, rust in linux on a framework laptop!
    Be my guide sensei 😭❤

    • @wbfaulk
      @wbfaulk Před 3 měsíci +4

      Pretty sure he was running FreeBSD, based on the browser's "user-agent", not Linux.

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

      OpenBSD @@wbfaulk

    • @smikkelbeer6352
      @smikkelbeer6352 Před 3 měsíci +2

      ​@@wbfaulk OpenBSD, even

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

      @@smikkelbeer6352 dammit

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

    Good to see another openBSD enjoyer :)

  • @codewizard58
    @codewizard58 Před 3 měsíci +2

    You can make a secure web site with about 60 lines of C that is extensible. Did this 28 years ago and was used as part of one the the first internet proxy firewalls.

  • @polarfamily6222
    @polarfamily6222 Před měsícem +1

    Kudos on using a part oh The VIM family! I also really need to look more at rust 🤣👍

  • @FabianVilersBe
    @FabianVilersBe Před 3 měsíci +1

    10:50 you could use the split_whitespace() function 😊

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

    Uses Rust and Nvim w/ gruvbox colours? Absolutely based professor.

  • @EmanuelRaziel
    @EmanuelRaziel Před měsícem +1

    Thank you a lot!

  • @Lion_McLionhead
    @Lion_McLionhead Před 3 měsíci +4

    Remember the good old days when writing a 1 line web server in perl was the rage.

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

    Laurence Tratt and @Computerphile, I hope you'll soon make a video explain how an why this naive server is so damn *vulnerable* to many sorts of attacks, particularly BF, DoS and LL attacks.

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

    Brilliant!

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

    I too made a http server, which was just a todo api app. Learnt how http request actually works and parsing them. Fun project, got to learn a lot. Wanted to learn on the security part of this, any insights or references to look into?

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

    Love that framework laptop you got there ;) got one too.

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

    Great presentation! I came for the httpd teaser, I left with my first appreciation of Rust.

  • @shoaib_zubair
    @shoaib_zubair Před 3 měsíci +2

    love your shirt pattern.

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

    Love the Framework laptop!

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

    Lovely sample. I used to do all this with a shell script. Same approach, and potentially quite safe.

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

    Would you say there is a use case for this in Internet of Things projects? I've heard of MQTT and other messaging technologies but for a private home network behind a firewall this is pretty low point of entry. I guess I should look into Rust and add that to my Resume too.

  • @incredifall
    @incredifall Před 3 měsíci +1

    Legend!!

  • @abcde...7960
    @abcde...7960 Před měsícem +1

    It is an interesting video thanks for sharing.

  • @metcaelfe
    @metcaelfe Před 2 měsíci +1

    Oauth clients are an incredibly useful implementation of these

  • @varantavers
    @varantavers Před 3 měsíci +12

    Rust mentioned, uses Framework. Instant like.

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

    How is your gvim configured such that it's acting as an IDE for Rust coding? I'd love to configure mine that way.

  • @SeniorScriptKitty
    @SeniorScriptKitty Před 25 dny

    much obliged, i appreciate it.

  • @danielAgorander
    @danielAgorander Před 3 měsíci +2

    Using a slightly different one eh? I checked, and I spot some OpenBSD httpd! High Five Laurence Tratt!
    (And OpenBSD does run very nice on the Framework laptop. :D )

  • @user-td5gy2fh3p
    @user-td5gy2fh3p Před 3 měsíci +2

    can someone tell me the name of the neovim theme he is using? thanks.

  • @itwsntme
    @itwsntme Před 2 měsíci +1

    That was very clear

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

    I'd love to take a stab at turning all those unwrap()s into idiomatic error handling with correct response codes, as well as path traversal checks. Is the source (and sample website) available?

  • @slendi9623
    @slendi9623 Před 3 měsíci +2

    11:58 this path traversal makes me cry

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

    you didn't send application type header for the image?

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

    Realizing that someone needed to program the libraries you were using feels like a lost art.
    We stand on the shoulder of giants.