Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
    
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... –  mafutrct May 3 '11 at 12:36
add comment

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/

share|improve this answer
    
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? –  Mark Ransom Jun 5 '09 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 '09 at 5:44
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

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 :)

share|improve this answer
    
"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. –  Mark Ransom Jun 5 '09 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 '09 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. –  Mark Ransom Jun 5 '09 at 4:20
    
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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 '09 at 18:10
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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