-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLEIAME.txt
114 lines (87 loc) · 3.87 KB
/
LEIAME.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Servidor Web Mapache (Mock do Apache)
=====================================
Esse e um servidor web desenvolvido para uma atividade acadêmica da disciplina MAC5910 no IME/USP
Foram implementado unicamente os comandos:
- OPTIONS
- POST
- GET
O código esta disponível no repositório git do Github no seguinte endereço:
https://github.com/mscs-usp/mac5910-webserver
Nesse projeto foi utilizado também o serviço de integração continua Travis.
Resultados do build podem ser verificados no seguinte endereço:
https://api.travis-ci.org/mscs-usp/mac5910-webserver
NOTA: Não foram implementados as respostas ETag nem Accept-Ranges, conforme
foi especificado explicitamente para não ser feito no fórum do PACA.
ETag: "57f9-1ee-4e580516c6b08"
Accept-Ranges: bytes
Autores:
- Albert De La Fuente
- Renan De Melo
Como compilar:
--------------
Execute no shell o seguinte comando:
make
Ele criara na pasta ./bin o binario "mapache".
Nota:
Foi incluída informação de debug no processo de compilação para poder usar gdb durante o desenvolvimento.
Como executar:
--------------
O servidor pode ser executado com a seguinte linha de comandos no shell:
make run
ou
./run.sh
Ambos executarão o servidor na porta 8000. Se for necessário executar o servidor em outra porta, é necessário que seja executado a linha de comando:
./mapache <porta>
(ATENCAO!) Se este último comando for executado, é necessário que ele seja executado a partir do diretório bin, pois o servidor acessa seu diretório de htdocs como relativo, mais precisamente espera que esteja em ../web.
Onde colocar o conteúdo:
------------------------
O home do servidor (htdocs) e a pasta "web"
Como testar:
------------
Na pasta responses incluíram-se dois scripts. O script server-dump.sh
gera um dump do servidor, chamada:
./server-dump.sh 8000 apache.txt
O script dump.sh nao e mais do que uma chamada duas vezes a esse script,
só mudando a porta e o nome do arquivo resultante, chamando o kdiff3 no
final para verificar os resultados.
Também é possível se testar pelo navegador. Após iniciado o servidor, o exemplo indicado pelo professor pode ser acessado pela url: http://localhost:8000/index.html
Estrutura dos arquivos:
-----------------------
.
├── bin Diretório com o arquivo executável
│ └── mapache
├── ep1.pdf Enunciado
├── LEIAME.txt Esse arquivo
├── Makefile
├── obj Diretório onde são guardados os arquivos .o
├── README.rst Readme do github
├── responses Diretório de dumps do apache e do mapache e o diff
│ ├── apache.txt Dump do GET, POST, OPTIONS do mapache
│ ├── compare.diff Diff do apache.txt vs mapache.txt
│ ├── dump.sh Script de testes dos dumps usando kdiff3
│ ├── mapache.txt Dump do GET, POST, OPTIONS do mapache
│ └── server-dump.sh Script auxiliar
├── run.sh
├── src Diretório com o código fonte
│ └── mapache.c
├── tarball.sh Script para criar o tarball no formato requerido
├── traces Diretório com capturas do Wireshark
│ ├── apache-post-wireshark.trace Nosso trace do POST no apache
│ ├── ep1-existe-wireshark.trace
│ ├── ep1-naoexiste-wireshark.trace
│ └── ep1-options-wireshark.trace
└── web
├── exemplos
│ ├── exemplo_get.txt
│ ├── exemplos-http.txt Exemplos de requisições e respostas
├── imagens
│ └── logoIME.png
├── index.html Exemplo de index.html
├── outro.html Exemplo alternativo de html
└── post.html Exemplo de formulário web usando post
Outros targets do Makefile:
---------------------------
make clean Limpa os .o
make remove Apaga o conteúdo de ./bin
make kill Mata o webserver caso esteja sendo executado
make run Inicia o servidor na porta 8000 (run.sh)