How a Web server actually works ~ with C source code

Do you wonder how to write a program that accepts incoming messages with a network socket? Have you ever just wanted your own Web server to experiment and learn with?

Have you ever wondered how a Web server actually works? Experiment with nweb -- a simple Web server with only 200 lines of C source code. In this article, Nigel Griffiths provides a copy of this Web server and includes the source code as well. You can see exactly what it can and can't do.

Well, look no further -- nweb is what you need. This is a simple Web server that has only 200 lines of C source code. It runs as a regular user and can't run any server-side scripts or programs, so it can't open up any special privileges or security holes.

This article covers:

  • What the nweb server program offers
  • Summary of C functions features in the program
  • Pseudo code to aid understanding of the flow of the code
  • Network socket system calls used and other system calls
  • How the client side operates
  • C source code

nweb only transmits the following types of files to the browser :

  • Static Web pages with extensions .html or .htm
  • Graphical images such as .gif, .png, .jgp, or .jpeg
  • Compressed binary files and archives such as .zip, .gz, and .tar
  • If your favorite static file type is not in this list, you can simply add it in the source code and recompile to allow it.

Read more at IBM developerworks...

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 6 comments… read them below or add one }

1 nils 09.16.08 at 5:16 pm

thanks for the tip!
it helped much

2 Mahi 10.23.08 at 11:34 am

i need the C code for HTTP server..Please help me.

3 tao chen 03.09.09 at 5:40 pm

I am a student learning how to write a web server, please help me with your source code.
thanks,

4 HARISH 04.21.09 at 3:57 pm

iam working a project which will send and receive data from webserver. Your webserver application is suitable for me to develop tmy projet very fast. Can you please forward the source code of the webserver using HTTP to my mail id as follows: galiharish@yahoo.com

5 Ron 05.04.09 at 3:00 am

want advanced code in C web server
thanks a lot..

6 sanjee 06.17.09 at 3:23 am

how to Write a simple web server in C. This web server only has to respond to GET requests. A web server that serves the same content irrespective of the URL in the GET request is worth 80% of the marks. For further 20% of the marks your server must serve contents based on the file names in the URLs in GET requests.please help me with your source code.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tagged as: , , , , , , , , , , , , , , , , , , ,

Previous post: How to rewind tapes fast and save typing time

Next post: Shell Scripting: Generate or Print Range of Numbers ( Sequence of Numbers for Loop )