Desenvolvimento Web
Uma breve introdução ao mundo do desenvolvimento web

O que é a web?

Web é um termo utilizado para referenciar um sistemas de arquivos dispostos na internet que podem ser acessados de maneira visual ou não, através de uma url ou um endereço ip.

Do que é feita a web?

Basicamente a web é feita por trocas de arquivos entre um servidor e um cliente através de requisições e protocolos

  • Server-side

    Recebe os dados enviados pelo cliente e retorna um arquivo contendo as informações solicitadas

  • Client-side

    É responsável por coletar as entradas de dados do usuário, enviar ao servidor e renderizar as informações que retornam do servidor.

Server-side: Nos bastidores da aplicação...

É a parte da aplicação web que roda no servidor. Serve para criar arquivos, armazenar dados que podem ser consultados em qualquer lugar, etc.

Linguagens

  • PHP

    O PHP é uma linguagem de script open source de uso geral, muito utilizada, e especialmente adequada para o desenvolvimento web.
  • ASP.NET

    O ASP.NET é baseado no Framework .NET, as aplicações para essa plataforma podem ser escritas em várias linguagens, como C#, F# e Visual Basic.NET.
  • Java

    Java é uma linguagem de programação desenvolvida na década de 90. Java não é compilado para código nativo, é transformado em um bytecode que é interpretado por uma máquina virtual
  • Python

    é uma linguagem que foi criada para produzir código bom e fácil de manter de maneira rápida.
  • SQL

    É uma linguagem padrão de gerenciamento de dados que interage com os principais bancos de dados baseados no modelo relacional.
  • Outras

    Existem varias outras linguagens de servidor... Ex: Ruby, Shell, Go, JavaScript (Node.js), etc

Client-side: Bem mais do que se pode ver...

É a parte da aplicação web que roda diretamente no browser do usuário. Serve para coletar entradas do usuário, validar dados, criar interações, etc.

Linguagens

  • HTML

    (HyperText Markup Language, que significa Linguagem de Marcação de Hipertexto) é uma linguagem de programação linguagem de marcação utilizada na construção de páginas na Web. Documentos HTML podem ser interpretados por navegadores.

  • CSS

    O Cascading Style Sheets (CSS) é uma "folha de estilo" composta por “camadas” e utilizada para definir a apresentação (aparência) em páginas da internet que adotam para o seu desenvolvimento linguagens de marcação (como XML, HTML e XHTML).

  • JavaScript

    JavaScript não é Java... Sabendo disso, quero que saiba que JavaScript é uma linguagem de programação client-side. No client-side ela é utilizada para controlar o HTML e o CSS para manipular comportamentos na página.

Protocolos de Rede

Os protocolos são desenvolvidos por algoritmos, instruções bem definidas para executar uma tarefa. Os protocolos são utilizados em duas ou mais máquinas em rede, para se comunicarem. Existem vários protocolos no mundo inteiro, ao quais podem oferecer diversos serviços em uma comunicação de computadores.

E o que são serviços de rede? São os serviços oferecidos em uma rede de computadores. Tais serviços podem ser oferecidos por diversos protocolos. Quando estamos fazendo um download de um arquivo pela internet, estamos utilizando um serviço de rede, normalmente proporcionado pelo protocolo File Transfer Protocol, que significa “Protocolo de Transferência de Arquivos”, mais conhecido como FTP.

Protocolo HTTP

O Hypertext Transfer Protocol, sigla HTTP (em português Protocolo de Transferência de Hipertexto) é um protocolo de comunicação (na camada de aplicação segundo o Modelo OSI) utilizado para sistemas de informação de hipermídia, distribuídos e colaborativos. Ele é a base para a comunicação de dados da World Wide Web.

Métodos de Solicitação (HTTP)

Uma solicitação HTTP, ou HTTP Request é uma maneira do navegador mostrar uma página da internet utilizando um dos oito métodos de solicitação do protocolo HTTP.

  • GET

    O método GET requisita uma representação do recurso especificado. Requisições usando GET devem apenas recuperar dados e não devem ter qualquer outro efeito.
  • POST

    Envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando. Sua utilização em uma requisição ocorre quando é necessário enviar dados ao servidor para serem processados.
  • Outros

    Existem diversos outros tipos de requisição com outras regras que nós não detalharemos neste momento. (Ex: HEAD, PUT, DELETE, TRACE, OPTIONS e CONNECT)

Status de Respostas

A linha inicial de uma resposta HTTP indica ao cliente se sua requisição foi bem sucedida ou não. Essa situação é fornecida através de um código de retorno (Status-Code) e uma frase explicativa (Reason-Phrase). O código de status é formado por três dígitos e o primeiro dígito representa a classe que pertence classificada em cinco tipos:

  • 1xx: Informational (Informação) – utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo processada;
  • 2xx: Success (Sucesso) – indica que a requisição do cliente foi bem sucedida;
  • 3xx: Redirection (Redirecionamento) – informa a ação adicional que deve ser tomada para completar a requisição;
  • 4xx: Client Error (Erro no cliente) – avisa que o cliente fez uma requisição que não pode ser atendida;
  • 5xx: Server Error (Erro no servidor) – ocorreu um erro no servidor ao cumprir uma requisição válida.

Content-Type

O cabeçalho Content-Type é utilizado para indicar o tipo de arquivo do recurso.

Em respostas, o Content-Type diz para o client qual é o tipo de conteúdo que a resposta, de fato, tem. Alguns browsers vão realizar o chamado "MIME Sniffing" em alguns casos e não vão, necessariamente, seguir o valor declarado por este cabeçalho. Para previnir este comportamento é possível definir o cabeçalho X-Content-Type-Options para o valor nosniff.

Conteúdos Comuns

  • HTML

    <!DOCTYPE html>
    <html lang="pt-br">
      <head>
        <title>Título da página</title>
        <meta charset="utf-8">
      </head>
      <body>
        Aqui vai o código HTML que fará seu site aparecer.
      </body>
    </html>
    
  • XML

    <?xml version="1.0"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap- envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding" xmlns:tiposns="http://www.w3.org/2001/XMLSchema">
      <soap:Body>
        <m:retornaNomeResponse xmlns:m="http://www.dre.ufrj.br/ws/dre">
          <nome type="tiposns:string">Leonardo Bentes Armt</nome>
        </m:retornaNomeResponse>
      </soap:Body>
    </soap:Envelope>
    
  • JSON

    {
      “titulo”: “JSON,
      “ano”: 2012,
      “genero”: [
        “aventura”,
        “ação”,
        “ficção”
      ]	
    }
    

Cache

Basicamente, o termo cache pode ser compreendido como uma área de armazenamento onde dados ou processos freqüentemente utilizados são guardados para um acesso futuro mais rápido, poupando tempo e uso desnecessário do seu hardware.

Cache de navegador

O cache de um navegador é o dispositivo ou instrumento através do qual ele salva dados, como imagens e HTML, que são necessários para exibir um website. A intenção dessa gravação de dados é ajudar com a largura de banda.

Servidor de Cache

Um servidor de cache é um servidor criado para acelerar os pedidos de acesso a um determinado serviço, ao fazerem cache dos pedidos a esse serviço.

Os mais conhecidos destes servidores são os Proxys. Estes recebem pedidos de acesso a páginas web, devolvem-nas aos utilizadores e guardam-nas para que quando outro utilizador voltar a pedir a mesma, o acesso seja mais rápido.

Fim