{"id":26,"date":"2006-06-01T16:51:27","date_gmt":"2006-06-01T22:51:27","guid":{"rendered":"http:\/\/www.p14nd4.com\/blog\/projects\/http10-web-server\/"},"modified":"2010-08-17T21:48:10","modified_gmt":"2010-08-18T03:48:10","slug":"http10-web-server","status":"publish","type":"page","link":"https:\/\/www.p14nd4.com\/blog\/projects\/http10-web-server\/","title":{"rendered":"HTTP\/1.0 Web Server"},"content":{"rendered":"<p>I wrote this program around April, 2006 for inet4021 &#8211; Network Programming. The requirement was to create a web server adhering to RFC1945 (HTTP\/1.0 specification) and achieving concurrency. I finished early, so I decided to add thread-safe logging (which, interestingly, led me to find out that my web server, running on my home connection on port 5555, got crawled by msnbot within a few hours of going online) and a chrooted environment (when spanwed as root, and then also suid&#8217;s to &#8216;nobody&#8217;).<\/p>\n<p>The full project, including a README, makefile, and sample public_html directory is available <a href=\"\/code\/20060419-1746-drh-httpserv\/\" title=\"httpserv code\">here<\/a>, including a bzipped tarball of all files. The source code is also provided below (reformatted from the tar&#8217;d copy for better 80-column compliance).<\/p>\n<p>&nbsp;<\/p>\n<p>Edit: Well, <a href=\"http:\/\/qbnz.com\/highlighter\/index.php\">GeSHi<\/a> or PCRE, used in the syntax highlighting in my blog, is puking on this file for some reason. You&#8217;ll have to look at it in your own editor, if you want to see it. Grab the <a href=\"\/code\/20060419-1746-drh-httpserv\/httpserv.c\">source code<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I wrote this program around April, 2006 for inet4021 &#8211; Network Programming. The requirement was to create a web server adhering to RFC1945 (HTTP\/1.0 specification) and achieving concurrency. I finished early, so I decided to add thread-safe logging (which, interestingly, led me to find out that my web server, running on my home connection on [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":25,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-26","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/pages\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":0,"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/pages\/26\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/pages\/25"}],"wp:attachment":[{"href":"https:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/media?parent=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}