# Hospedagem de sites

Hospedagem de sites ou alojamento de sites é um serviço que possibilita a pessoas ou empresas com sistemas online a guardar páginas, arquivos, informações, imagens, vídeo, ou qualquer conteúdo acessível por Web. Provedores de hospedagem de sites tipicamente são empresas que fornecem um espaço em seus servidores e conexão à internet a estes dados aos seus clientes.
Tipicamente, a hospedagem de sites hospeda arquivos 24 horas por dia, em um endereço IP estático, por sua vez, utilizamos um domínio para encontrar com facilidade este site, é muito comum confundir hospedagem de sites com registro de domínio, entretanto, apesar de ambos trabalharem em conjunto, são serviços diferentes.

## Como funciona
### Pré-requisitos

Para acessar um site geralmente é necessário um domínio, alguns provedores disponibilizam um subdomínio gratuitamente, mas o ideal é registrar um domínio. Alguns provedores oferecem também o serviço de registro.

### Limites

Os provedores de hospedagem delimitam três recursos principais para cada conta de hospedagem disponibilizada.
Um detalhe importante é que o limite de transferência e armazenamento é medido em Megabyte (MB) ou em Gigabyte (GB), sendo que em alguns provedores a quantia em GB é igual a 1 000 MB (megabyte) e não a 1 024 MB (megabyte), deve-se, portanto, verificar o contrato para saber qual a taxa correta.

#### Transferência mensal

A transferência mensal é medida em MB ou em GB. A transferência mede tanto a quantidade de dados transferido do servidor para os visitantes do site quanto dos visitantes para o servidor de hospedagem. Muitos provedores de hospedagem também contam na taxa de transferência o tráfego de e-mail (SMTP, POP3), FTP, entre outros protocolos. Deve-se observar o contrato para verificar o que é contado em cada caso.
Essa taxa é reiniciada no primeiro segundo de cada mês e geralmente os painéis de controle permitem obter um extrato de quanto está sendo utilizado para o mês corrente.

#### Armazenamento

O armazenamento é a quantidade de dados medida em MB que se pode armazenar no servidor. Alguns provedores contam todos os dados armazenados na área de FTP apenas, outros também contam o limite de banco de dados, e-mails e até logs de acesso. A resposta geralmente está no contrato do serviço.

#### Quantidade de domínios

O padrão de mercado é um domínio por conta de hospedagem, no entanto, alguns provedores disponibilizam mais de um domínio por conta. A disponibilização de mais de um domínio não significa que poderá ter dois ou mais sites em uma só conta, mas que dois ou mais domínios poderão responder para um mesmo site, um mesmo conteúdo.

### Serviços essenciais

Um site tipicamente precisa:
* um servidor para o protocolo HTTP, como o Apache ou o IIS
* serviço de e-mail, com SMTP, POP3 e talvez IMAP
* serviço de DNS para resolução de hostnames em IPs
* serviço de publicação, provavelmente pelo protocolo FTP
* estatísticas gráficas, que são softwares que processam os logs do servidor HTTP.

### Publicação

Quem contrata a hospedagem de sites deve enviar seu site ao servidor. O envio do site se dá tipicamente através de FTP ou por uma interface web através da qual pode-se efetuar o upload de arquivos tal qual inserir anexos num webmail.
Outras formas de publicação: SSH e Front Page.

### Linguagem de programação

Apesar de o padrão de um site na web ser a hipertexto HTML, existem outras linguagens que podem pré-processar o HTML e modificá-lo de forma dinâmica.
As linguagens de programação mais comuns para web são PHP, JavaScript, ASP, plataforma ASP.NET, Perl, JSP, Ruby/Ruby on Rails, Python. Através destas linguagens o conteúdo do site pode ser armazenado em um banco de dados.

### Bancos de dados

Os banco de dados mais comuns para web são MySQL, Access, PostgreSQL, SQL Server, MariaDB e Firebird. Os bancos de dados devem ser acessados através de uma linguagem de programação.

### Serviço de e-mail

O serviço de e-mail é composto por um protocolo de recebimento e envio de e-mails entre servidores de e-mail, o protocolo SMTP e um protocolo de download de e-mails para os usuários, tal qual o POP3 e IMAP. A maioria dos provedores de hospedagem oferecem também uma página para leitura de e-mails através do navegador, ou seja, um webmail.

### Gerenciamento da área de hospedagem

O gerenciamento do serviço tipicamente ocorre através de um painel de controle, onde podem ser criados e-mails, alterar senhas e todas as tarefas administrativas necessárias. Existem vários tipos de painéis de controle, sendo os mais comuns o cPanel, o Plesk e o HELM. Alguns provedores de hospedagem, no entanto, possuem um painel de controle próprio.

## Tipos de hospedagem

Hospedagem pode ser divida em seis tipos genéricos: gratuita, partilhada, revenda, servidor virtual (VPS), dedicado e co-location.
* Hospedagem grátis: a maioria dos serviços gratuitos de hospedagem são extremamente limitados quando comparados à hospedagem paga. Geralmente estes serviços incluem banners e outros tipos de propaganda nos sites. Além disso, a maioria oferece somente envio de sites por uma interface web, o que não é tão eficiente quando o envio por FTP. Também, geralmente, o espaço em disco e o tráfego de dados é limitado
* Hospedagem compartilhada: dezenas a centenas de sites são hospedados num mesmo servidor o que garante o melhor custo-benefício. Hoje os sistemas são estáveis o suficiente para permitir um serviço de qualidade mesmo nessas condições. O uptime (tempo de serviço no ar) deve ser cerca de 99,5% do tempo, pois a administração de múltiplos sites num mesmo servidor requer manutenções mais constantes que um único site por servidor
* Revenda de hospedagem: serviço oferecido para quem quer oferecer hospedagem de sites. O espaço em disco e tráfego nestes planos é superior a hospedagem compartilhada e pode-se colocar diversos sites
* Servidor virtual (VPS): é uma tecnologia que torna um mesmo servidor capaz de rodar diversas plataformas diferentes, tornando capaz controlar melhor a hospedagem de seu site. É indicado para aplicações que precisam acesso total ao sistema operacional mas que não precisem de muita capacidade de processamento
* Hospedagem em cloud: é a evolução do servidor virtual, pois permite a rápida migração para outro hardware caso apresente falhas. Por outro lado, é uma opção com custo inferior ao Servidor Dedicado mas com qualidade superior, pois o dedicado está sujeito a mais falhas. A vantagem em relação à hospedagem compartilhada é que não custa consideravelmente mais e ainda assim permite isolação de recursos e que um site aguente uma quantidade muito superior de visitas ao mesmo tempo
* Servidor dedicado: é o serviço mais caro, porém, superior à hospedagem compartilhada e ao servidor virtual, pois pode-se controlar melhor o servidor. Além de contratar um servidor, é também necessário saber que se necessita gerenciá-lo, o que requer um profissional qualificado, principalmente para gerenciar a segurança do servidor contra crackers. O hardware é fornecido pelo data center
* Co-location: este serviço é semelhante ao servidor dedicado, porém o hardware não é fornecido pelo data center mas sim pelo próprio contratante
* Streaming: este serviço é oferecido para disponibilizar vídeos ou áudio online no formato 1 cliente → 1 servidor → N usuários

### Tabela comparativa entre tipos de hospedagem

Os levantamentos abaixo são referente ao normalmente praticado pelo mercado.
| Recurso | Grátis | Compartilhada | Revenda | VPS | Hospedagem em Cloud | Servidor dedicado | Colocation |
| Preço | Grátis | Baixo | Médio | Médio | Médio | Alto | Alto |
| Linguagens de programação | Diversas | Diversas | Diversas | Diversas | Diversas | Diversas | Diversas |
| Banco de dados | Diversas | Diversas | Diversas | Diversas | Diversas | Diversas | Diversas |
| Personalização de ambiente do servidor | Nenhum | Pouco | Pouco | Alto | Alto | Alto | Alto |
| Requisições/visitantes simultâneos | Baixo | Baixo | Baixo | Médio | Alto | Alto | Alto |
| Quantidade de CPU por site | Baixíssimo | Baixíssimo | Baixíssimo | Baixo | Alto | Alto | Alto |
| Quantidade de memória RAM | Baixíssimo | Baixíssimo | Baixíssimo | Baixo | Alto | Alto | Alto |
| Serviço de email | Não | Sim | Sim | Sim | Sim | Opcional | Opcional |
| Gerenciamento do sistema operacional | Pelo provedor | Pelo provedor | Pelo provedor | Opcional | Pelo provedor | Opcional | Opcional |
| Quantidade de sites | 1 | 1 a muitos | Muitos | Depende de configuração | 1 a muitos | Depende de configuração | Depende de configuração |
| Compra e manutenção do hardware | Pelo provedor | Pelo provedor | Pelo provedor | Pelo provedor | Pelo provedor | Pelo provedor | Pelo cliente |
| Suporte técnico básico por email | Não | Sim | Sim | Não | Sim | Sim | Sim |
| Suporte técnico básico por telefone | Não | Geralmente | Geralmente | Geralmente | Sim | Sim | Sim |
| Suporte técnico à aplicação do cliente | Não | Não | Não | Não | Não | Não | Não |
| Suporte técnico ao sistema operacional e softwares do servidor | Não | Sim | Sim | Opcional | Sim | Opcional | Não |
| Propaganda no site | Sim | Não | Não | Não | Não | Não | Não |