I've had a simple web page for years now, but it's all static HTML and I'm ready to do something more ambitious. I realize though that I have a lot of ignorance in this area, and I'd like some references for learning as much as I can on the subject.

Here are a couple of example questions just off the top of my head, not meant to be representative or anything.

  • If I'm signed up with a shared host, does that mean my IP address is also shared? What happens if that machine also hosts a porn site, is my site going to be added to a bunch of block lists?
  • How do I setup my site so that a Python program can serve the content?

Again, I'm not looking for the answers to specific questions, I'm asking where are the references that will help me figure this stuff out on my own. Thanks.

  • The "I'm not looking for the answers to specific questions but for references" part of the question was apparently not read by 75% of the answerers...
    – mafu
    May 3, 2011 at 12:36

8 Answers 8


I think, first, you should understand, how does Internet and it's services works. To do that, you'll need a theory of computer networks, a little patience and Google. To get started, try Google and Wikipedia:

And next, you should to get a little closer with scripting language's (mostly, on sirver-side)

then, when you will know a little bit about everything, you'll be able to choose specific things to study more closer on: such as programming language (php, python, perl), web-server (apache, iis). I suppose, the best way to learn something - is to start from the history of the subject.

So, since it was a little lower, than you was needed, i could only give one great Source of the Knowlege (a little how-to):

a bit more closer to your question about Python (how to install it's module):

It is an article about Apache web-server from FreeBSD Handbook (one of my favorites)

Also, maybe you should check out this (more detailed documentation on mod_python):

(also includes Windows installation guide - http://www.modpython.org/live/mod_python-2.7.8/doc-html/app-wininst.html )

But if I where on your place, I'd prefer to use PHP or Ruby for that purpose.

PHP-help source: http://www.php.net/manual/en/

Ruby's basics: http://www.ruby-lang.org/en/documentation/quickstart/

  • Good advice, but perhaps a little lower level than I'd hoped to start with. I already know a bit about basic networking and scripting languages. Since many hosts use Apache, your suggestion for studying it specifically is a good one. Any good links? Jun 5, 2009 at 4:31
  • Can't do much better for Apache than to start at httpd.apache.org. The documentation there is fairly extensive.
    – Ben Dunlap
    Jun 5, 2009 at 5:44

If it's a learning experience, you should get a virtual server to which you have full access. This will satifsy your need to learn, and shouldn't cost much. You should then have your own IP address. There's no way to predict what an overzealous block list could include - they could deduce that you share a network or an ISP with a porn site. The "legitimate" censorship software generally relies on hostnames and URLs, but there is a lot of this out there.

You may wish to consider running a server at home instead of paying for a virtual server. This depends on what Internet connectivity is available in your area and what hardware you own. Cheap virtual servers can be similar to home Internet connectivity - luck will play a major factor in their customer service and in their reliability and performance. Overzealous censorship blocking lists could also include ISPs that provide service to home customers, if you're worried about ones so excessive that they block by IP address. I would just ignore this for now and see what problems you run into later, it's rarely a serious issue, and always the client's fault for using unreasonable blocking software.

It sounds like one of your questions is "what does an HTTP request look like, and how does it specify the hostname". I think it's good to start from a low level like this. The Wikipedia HTTP article should give you a reasonable overview and point you to appropriate RFCs. Since you seem interested in low-level details, which is indeed necessary for a proper understanding, knowing a bit about TCP and DNS would be helpful, but you probably don't need to fully understand them. If it's Web Hosting 101, about 10 minutes should be spent on TCP and 10 minutes on DNS for every week spent on HTML.

I think the real question here is - what's a book that discusses all of this, from the ground up, with an reasonable balance of detail. Many people here learned this stuff ad-hoc, possibly as the technology was developed. Some others may have learned from schools. This can make it hard to provide guidance to someone learning fresh. I'm curious about myself, in case I get asked this myself by someone who's willing to learn.


In reply to the first question - usually web blocklists only check hostnames, so your site shouldn't be affected.


I can speak to the first part.

Most sites use host headers...so that even though hundreds of sites may be on a single IP address your site is directed to your content based on your domain name and dns info.

However, yes, you could get that IP added to block lists...but usually not blocked by IP :)

  • "based on your domain name and dns info" - yes, but what are the mechanics? Looking at RFC 1035, the A record for the site only contains an IP address, so how does the other information get transmitted to the host? This is what I mean by my ignorance. Jun 5, 2009 at 4:10
  • @Mark, when a browser makes a http request it includes a header specifying the hostname it is trying to reach.
    – Zoredache
    Jun 5, 2009 at 4:15
  • And where's the reference that would teach me this? That's my real question. Of course with that little tidbit, I could probably look up for myself what a http header looks like. Jun 5, 2009 at 4:20

How do I setup my site so that a Python program can serve the content?

Depends on how you like your python.

What happens if that machine also hosts a porn site, is my site going to be added to a bunch of block lists?

Check the usage policies. Some hosting providers won't do porn, and make it clear in their usage agreements.

Either way, it probably won't be a problem.


How do I setup my site so that a Python program can serve the content?

Apache is a highly extendable system. mod_python is one way of doing what you are looking for. In general, modules are a common form way to extend apache to support a given language.

If you're hungry for more, the Apache HTTPD Documentation is full of information and tutorials.

  • Because of it's "extend-anything" nature, I was under the impression that you can't really run mod_python in a shared environment. If this is the case, you'd be hard-pressed to find a shared-hosting provider willing to let you run your own Apache instance.
    – hark
    Jun 5, 2009 at 18:10

Hang out on the blogs of -- and read the books written by -- the staff at OmniTI. Just scroll to the bottom of their home page and look at the photo of the stack of books written by their employees -- I'm guessing a number of these books are just what you're looking for.


Hey guys. Since OP said he will be on share host, the Service Provider will be the one who setup Python support. I don't think he need to worry about setting up python on the server.

OP, you might want to check with your host and see if they provide Python support and if the server is Windows or *nix.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.