Don't roll your own HTTP server
-
Upload
nordic-apis -
Category
Technology
-
view
36 -
download
0
Transcript of Don't roll your own HTTP server
![Page 1: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/1.jpg)
DON’T ROLL YOUR OWN HTTP SERVER
JOEL W KALL, CHIEF CCO OFFICER @ LOOP54
![Page 2: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/2.jpg)
Loop54
• On-site e-commerce search engine• SaaS• Relevant search results• Machine learning
![Page 3: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/3.jpg)
In the beginning
• Small scale prototype• Nothing fancy – just accept requests• No configuration
![Page 4: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/4.jpg)
HTTP request-response sample
POST /path HTTP/1.1Content-Type: application/jsonContent-Length: 28
{“key”:”value”
}
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 31
{"anotherkey":"andavalue"
}
![Page 5: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/5.jpg)
HOLD MY BEERHOW HARD CAN IT BE?
![Page 6: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/6.jpg)
ENCODINGHEADACHE #1
![Page 7: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/7.jpg)
SOCKET QUEUEHEADACHE #2
![Page 8: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/8.jpg)
CONTENT LENGTHHEADACHE #3
![Page 9: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/9.jpg)
NAGLINGHEADACHE #4
![Page 10: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/10.jpg)
100 CONTINUEHEADACHE #5
![Page 11: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/11.jpg)
VERSIONINGHEADACHE #6
![Page 12: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/12.jpg)
KEEP-ALIVE & PIPELININGTHE NAIL IN THE COFFIN
![Page 13: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/13.jpg)
Kestrel to the resqueue
• Part of ASP.NET Core, embeddable• Cross-platform• 5% faster, 15% less memory• Full HTTP support• Probably more secure
![Page 14: Don't roll your own HTTP server](https://reader033.fdocuments.net/reader033/viewer/2022042723/5872d2201a28ab74188b5403/html5/thumbnails/14.jpg)
DON’T DO IT!BUT IF YOU DO, READ UP BEFOREHAND