MIEEC | SIEM | ano letivo 2014/15 Introdução a HTTP, HTML e CSS José A. Faria ([email protected]) FEUP, DEGI Setembro 2014 1. Introdução ao protocolo HTTP Introdução • A WEB - world wide web é um sistema global de hipertexto inicialmente desenvolvido em 1989 no CERN para facilitar a partilha de documentos científicos entre um grupo de cientistas geograficamente distribuído. • A WEB utiliza um modelo de processamento do tipo cliente/servidor onde: • os clientes são designados por web browsers • os servidores por web servers. Introdução • • Exemplos de web browsers: • Internet Explorer • Mozzila Firefox • Googel Chrome Exemplos de web servers: • Internet Information Server • Apache WEB browsers • Um web browser é uma aplicação que fornece aos utilizadores acesso a servidores web, sendo responsável: • pela formatação e apresentação dos dados; • pela interação com o utilizador. WEB browsers No mínimo, um web browser contém: • um cliente HTTP (hypertext transfer protocol) • um interpretador de HTML (hypertext markup language). Nota • Os clientes e servidores web interatuam através do protocolo HTTP. • Os documentos transmitidos dos servidores para os browsers são codificados em formato HTML. WEB servers • Os servidores web são responsáveis pelo atendimento dos pedidos de informação provenientes dos clientes. • A informação enviada pelos servidores aos clientes (browsers) pode consistir: • no conteúdo de um ficheiro de texto; • no “output” gerado por um programa. Protocolo HTTP • Os browsers e servidores web interactuam através do protocolo HTTP - hypertext transfer protocol, o qual permite a transferência de documentos HTML. Protocolo HTTP • O protocolo HTTP é baseado em interações do tipo pedido/resposta (request/response) onde: • o cliente estabelece uma conexão ao servidor e envia-lhe um pedido através da invocação do método request; • o servidor responde ao pedido, após o que termina a conexão. Protocolo HTTP Assim, as transações HTTP desenvolvem-se em 4 fases: • o browser abre uma conexão ao servidor • o browser envia um pedido ao servidor • o servidor envia uma resposta ao browser • a conexão é fechada Nota: Além da informação propriamente dita, as mensagens enviadas pelo servidor incluem outros dados como a versão do protocolo, um código de sucesso ou erro, a identificação do servidor, ... Endereços WEB • Um URI - Uniform Resource Identifier (endereço web), é uma string que identifica um servidor web e uma fonte de informação nesse servidor (ficheiro ou programa). Exemplo paginas.fe.up.pt/~jfaria/public_html/aulas/siem/index.html Endereços WEB Um URI combina: • um URL - Uniform Resource Locator, para a identificação do servidor • um URN - Uniform Resource Name, para a identificação da fonte de informação dentro do servidor. Endereços WEB: exemplo URL URN paginas.fe.up.pt / ~jfaria/public_html/aulas/siem / index.html servidor caminho no sistema de ficheiros ficheiro Endereços WEB • • Num servidor web Apache, por defeito: • os recursos disponíveis na web estão debaixo da pasta public_html • é devolvido o ficheiro index.html Assim, o endereço web: paginas.fe.up.pt/~jfaria/public_html/aulas/siem/index.html é equivalente a: paginas.fe.up.pt/~jfaria/aulas/siem 2. Introdução à linguagem HTML Linguagem HTML • O HTML é uma linguagem baseada em marcas (tags) através das quais é formatado o conteúdo das páginas (texto, imagens, links, ...). • Cada documento html é composto por um cabeçalho (header) e por um corpo (body). Linguagem HTML • O HTML é uma linguagem baseada em marcas (tags) através das quais é formatado o conteúdo das páginas (texto, imagens, links, ...). • Cada documento html é composto por um cabeçalho (header) e por um corpo (body). Primeiro exemplo <html> <head> <title>Primeira página web</title> </head> <body> Estão a ver como é fácil criar uma página web? </body> </html> ver exemplo-inicial.html Comandos • Cada marca corresponde a um comando e está contida entre os carateres < e >. • Todos os caracteres que não se encontrem entre < e > são tratados como texto e inseridos diretamente na página. • Os comandos permanecem ativos desde que são abertos e até serem fechados através do sinal /. Formatação • Basicamente, o HTML dispõe dos comandos de formatação usuais que se encontram nos processadores de texto mais, entre os quais: • <p> introduz um parágrafo e uma linha em branco. • <br> introduz um parágrafo, sem adicionar linha. • <i> ... </i> itálico • <b> ... </b> bold • <u> ... </u> sublinhado ver exemplos formatação Ligações (Links) • Uma das características fundamentais do html é a possibilidade incluir, dentro de um documento, ligações (links) para outros documentos. • Os links são introduzidos através da tag <a> ... </a>: <a href = “URL”> texto </a> Exemplo <a ref=”http://paginas.fe.up.pt/~jfaria/aulas/siem/ ficha.pdf”>Ficha da disciplina</a> • Cria um link: • • para o ficheiro ficha.pdf • contido no diretório public_html/aulas/siem/ • da área de trabalho do utilizador jfaria • do servidor páginas • do domínio fe.up.pt O link é apresentado no browser como: Ficha da disciplina. Ligações (Links) • Os links podem também ser associados a imagens. • No exemplo seguinte, o link fica associado à imagem contida no ficheiro figuras/fig4.jpg. <a href=”http://www.fe.up.pt/~jfaria/aulas/satd”> <img src=“figuras/fig4.jpg“> </a> Ligações (Links) <a href=”http://paginas.fe.up.pt/~jfaria/aulas/siem”> <img src=“figuras/fig4.jpg“> </a> • Neste caso, clicando sobre a figura, será invocado o ficheiro: /~jfaria/public_html/aulas/siem/index.html ver exemplo figuras.html Ligações (Links) • Por defeito, um link para uma página coloca o cursor no início dessa página. É, no entanto, possível efetuar ligações para pontos específicos dentro de uma página. • Para isso, no ponto destino terá de ser inserido um bookmark através da marca: <a name=”nome do bookmark”> Ligações (Links) • Admitindo que o ficheiro index.html do diretório sie contém o bookmark Trabalhos, o comando: <a href=”http://www.fe.up.pt/~jfaria/sie/ index.html#Trabalhos”>Trabalhos práticos</a> apresenta o link Trabalhos práticos no browser. • Quando este link for clicado, o cursor ficará posicionado no local da página onde foi inserido o bookmark: <a name=”Trabalhos”> Tabelas As tabelas são um elemento fundamental do HTML e podem ser utilizadas com duas finalidades distintas: • apresentação dos dados sob forma tabular (o que corresponde à utilização convencional de tabelas) • estruturação da própria página HTML, definido o layout dos vários elementos (texto e figuras) que a compõem. Tabelas As principais marcas associadas às tabelas são: • <table> ... </table> introduz uma tabela no documento. • <tr> ... </tr> introduz uma nova linha na tabela (table row). • <td> ... </td> introduz uma nova célula na tabela (table data) na linha atual (esta marca deve ser sempre introduzida entre a marca <tr>…</tr>). Tabelas Nota • As várias linhas de uma tabela podem conter diferentes números de células, sendo a dimensão das células calculada com base na linha que contiver o maior número de células. • Nas linhas com menor número de células, serão acrescentadas células vazias. Tabelas • O HTML suporta múltiplas propriedades associadas às tabelas, às linhas e às células que permitem definir em detalhe o aspeto gráfico e a apresentação dos dados. • Essas propriedades permitem, nomeadamente definir as dimensões, cores, caixilho das células, o alinhamento do texto, o espaçamento entre células, .... Listas O HTML suporta vários tipos de listas, numeradas ou não: • as listas “bulleted” são delimitadas pelas marcas <ul> e </ul> (unordered list) • As listas numeradas são delimitadas pelas marcas <ol> e </ol> (ordered list) • Os elementos das listas são separados pelas marcas <li> e </li> (list element). Exemplos de listas <ul type=“disk"> <li>text1</li> <li>text2</li> <li>text3</li> </ul> • text1 • text2 • text3 Para o “bullet” existem 3 opções: • disc <ul type=“disk"> • circle <ul type="circle"> • square <ul type=“square"> <ol> <li>text1</li> <li>text2</li> <li>text3</li> </ol> 1. text1 2. text2 3. text3 ver exemplo listas.html 3. Introdução às folhas de estilo (CSS) Folhas de estilo Uma folha de estilo (CSS – cascading style sheets) define um conjunto de regras que determinam como é que o browser apresenta os documentos html. Através das CSS é possível separar: o conteúdo do documento (HTML) do estilo da apresentação (CSS). Folhas de estilo Através das CSS’s é possível definir um vasto conjunto de propriedades, por exemplo: Font : Font Family, Font Size, ... Color and Background : Color, Background Color, ... Text : Word Spacing, Letter Spacing, Vertical Alignment, Text Indentation, Line Height Box : Margin, Padding, Border Width, Border Color, ... -----Para uma listagem completa das propriedades que podem ser definidas nas CSS’s ver: http://www.htmlhelp.com/reference/css/quick-tutorial.html Exemplo Dimensões, background, tipo de letra das divisões Cor, tamanho dos vários tipos de títulos Indentação do texto Margens, espaçamento, tipo de letra: - células header e dados, - linhas normais e alternativas Tipo de letra, cores, border dos botões Seletores Cada regra de estilo é formada por um seletor (por exemplo um elemento html como BODY, P ou H1) e um estilo a ser aplicado a esse seletor. selector { property: value } Folhas de estilo: Exemplo Por exemplo, as seguintes regras especificam que os headers: do tipo H1 devem ser apresentados pelo browser com font extra large e cor vermelha e os do tipo H2 com font large e cor azul H1 { font-size: x-large; color: red } H2 { font-size: large; color: blue } propriedade valor Seletores Qualquer elemento HTML (BODY, P, DIV, H1, TABLE ...) pode ser um selector. Na regra de estilo seguinte, o seletor é o parágrafo: p {font-family:Arial; font-size=12; font-color: black} Se esta regra for aplicada a um documento html, o browser irá a font Arial, 12 pixels, preto a todos os parágrafos. Selectores Os seletores também podem ser definidos com base nos atributos class e id do html. CSS p.Comentario {color: grey;} #div_principal { font: arial; background-color: blue; } HTML <p class=“comentario”> ... </p> <div id=“div_principal”> ... </div> Seletores ID Os seletores do tipo ID permitem definir um estilo para um elemento particular do documento html. Estes seletores são antecedidos pelo caracter "#“, como em: #div_menu { left: 3px; width: 800px; position: absolute; top: 3px; height: 28px; background-color: blue; } Seletores ID <body> <div id=div_menu> ... </div> </body> #div_menu { left: 3px; width: 800px; position: absolute; top: 3px; height: 28px; background-color: blue; } Seletores Class Os seletores de classe podem ser associados a seletores html, como em: p.normal {color: green;} p.comentario {color: blue;} após o que podem ser utilizados nesses seletores, por exemplo: <body> <p class=‘normal’>texto normal</p> <p class=‘comentario’>texto do comentario</> </body> Seletores Class Os seletores de classe também podem ser declarados sem estar associadas a qualquer elemento, por exemplo: .normal {font-size: 12pt; font-family: Times} Neste caso, o seletor classe pode ser utilizado em qualquer elemento: <p class=‘normal’>texto com formato normal</p> <input type=‘submit’ class=‘normal’ value=‘Ok></input> In line CSS as definições de estilo podem ser incluídas no interior de qualquer elemento dentro do BODY do documento html, como em: <p STYLE="color: red; font-family: serif"> Este parágrafo será apresentado com font serif e cor vermelha</P> CSS embebidas As definições de estilo podem ser embebidas nos cabeçalhos dos documentos html através do elemento STYLE : <head> <STYLE TYPE="text/css" MEDIA=screen> body { background: url(foo.gif) red; color: black } p { background: yellow; color: black } .note { margin-left: 5em; margin-right: 5em } </STYLE> </head> CSS externas As definições de estilos também podem ser definidas em ficheiros externos aos ficheiros html, o que permite utilizar as mesmas definições de estilo em múltiplas páginas. Desta forma, é possível mudar completamente o estilo de uma aplicação (possivelmente com dezenas ou centenas de páginas) atuando sobre uma único ficheiro. Esta é a forma mais correta de especificar as definições de estilo. CSS externas Neste caso, as páginas contém um link para o ficheiro CSS externo no cabeçalho (Head) do documento html por exemplo: <head> <link rel=StyleSheet href="style.css" type="text/css"> </head> onde style.css é o nome do ficheiro contendo a folha de estilo. Exemplo de ficheiro CSS /********* Gerais *********/ p { color: #4d4d4d; font-size: 8pt; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; } .buttons { font-family: Verdana; font-size: 8pt; color: #4d4d4d; } table { ... ... /********* Títulos *********/ .titulo1 { color: White; padding: 1px 6px 1px 6px; text-align: center; border: 1px #7c9ccc solid; } .titulo2 { /********* Divisões *********/ #div1 { left: 3px; width: 800px; position: absolute; top: 3px; height: 28px; background-color: #0099ff; border: 1px solid #0099ff; }