I have been trying to wrap my head around all the different parts of web development for a while now and still am not sure on everything.
I know that when you run a server, (weather it is the little one provided with django, pyWeb or Apache), it creates an IP address or url like http://0.0.0-8000 Then the computer that is hosting the server has a framework that deals with the input from webpages and decides what to do with them. The frameworks are like django or pyweb and the lamp distribution.
Servers create virtual environments for each host.
After that I'm a little lost.
So a host like In Motion Hosting will have their master computer running a ton of virtual machines, each one is given a limited amount of disk space and often several people will be given one machine as their "shared host".
The people may not know each other, but because the machine is virtual, you can log into it through your web browser.
This is a shared hosting plan.
I am not clear what the difference between a Virtual private network and a dedicated server is, but I think the dedicated server gives you a whole computer to yourself where as a VPN just gives you one of the virtual machines.
In a shared network you are able to use something called the SSH script shell to run commands. How extensive is this? Is it like a command line on windows or unix? I was reading on how to install django on a shared server and it sounds like I just have the ability to install packages on the already installed programs. For example, I can't install python because I just have access to the virtual box and not the system. But if that is the case, how do VMs work?
I guess if the server's computer has python installed, you will be able to use python commands on the SSH line. You can install vertualenv and run a completely new environment, essentially creating a VM inside a VM on a master computer.
Inside this vertualenv instance, you pip install django, pyweb or something like that. You then are able to restart your framework and access files that you have uploaded to the master computer through a File transfer protocol (FTP).
The url that django or pyweb create (http://0.0.0-8000) is then tied to the domain that your website is given (In your panel you are shown when you log into your server account you can have many websites and each are assigned an arbitrary domain (like http://inmotionhosting.com/sharedhostin … ldername/) unless you have payed for an unique one).
What I am mainly confused about is:
1. Why can't I install something like twisted and have many people on a tel-net client like they have for Muds sending and receiving data to the server (server being the vertualenv running pyweb or django that is on the vm that is my shared hosting). If they have specified "unlimited calls, and a mud server is not anything unnatural, this should be just fine right?
2. What are these "security risks" that everyone keeps telling me about and that I need to be aware of when running Apache or my own server on a public network? I understand that someone could send a thousand requests to refresh the page on my website, but I don't think there is anything I can do about that other than add in a delay for the page to load or a error checker that counts requests in a second and lock that IP if more than 3 requests have been sent in a second.
Also, if there is a forum, they can submit huge strings to the forum (although I could just add a character limit and timer for each person to submit forum posts).
This does not seem like anything to do with the server, but good coding practices. Why are these so-called "security risks" so bad that I should not consider running my own server unless I am ready to keep everything updated.
What updates would these be other than maybe the encryption software?
In other questions:
both django, and wordpress process graphics without me needing to hard-code imaging. Why should I use one over another?
in still another question: