111 lines
3.3 KiB
Markdown
111 lines
3.3 KiB
Markdown
# Rapport du TP 1
|
||
Réalisé par Thibaut Rochas et Tuan Minh VU
|
||
|
||
Le 4 février 2025
|
||
|
||
## Partie I: Le classique serveur Echo
|
||
|
||
### EXERCICE 1 : Version séquentielle
|
||
Nous nous sommes inspirés du cours pour implémenter le serveur écho.
|
||
### EXERCICE 2 : Test et capture
|
||

|
||
quand on voit le contenu du TCP, on voit tout le texte d'échange mais on voit qu'il y a un espace entre chaque 8 caractères quand on passe la taille du buffer. Et à la fin du caractère, nous pouvons voir le dernier caractère pour déterminer la fin du texte.
|
||
|
||

|
||
|
||
la taille des segments TCP est cohérente avec la taille du buffer.
|
||
Dans "Bonjour tout le monde !" nous avons 13 octets (comptez le dernier caractère à la fin) de texte et 64 octets pour échanger des informations pour un total de 77 octets.
|
||
Dans le texte "Je teste, je suis content, je dors" nous avons 99 octets, dont 64 octets pour le protocole d'échange et l'IP, et 35 pour le texte.
|
||
|
||

|
||
|
||
### EXERCICE 3 : Version Multithreadée
|
||
Dans cet exercice, on réussit à créer un multi thread pour 4 personnes seulement, on teste avec le 5ème et il ne peut pas être "echo"
|
||
|
||
## Partie II: Implémentation d’un client HTTPping
|
||
|
||
### EXERCICE 1 : Analyse du protocole HTTP
|
||
|
||
### Exercice 2 : Récupération d’une page avec netcat
|
||
|
||
### Exercice 3, Implémentation du HTTP ping
|
||
|
||
### Exercice 4 : Socket securisée
|
||
|
||
## Partie III : Implémentation d’un serveur HTTP simple
|
||
|
||
## Utilisation
|
||
|
||
Pour utiliser ce tp vous devez :
|
||
|
||
1. le forker via le lien fork ci-dessus.
|
||
2. Votre repository doit être **privé**. Vous devez le partager avec votre encadrant de TP.
|
||
3. vous obtiendrez un nouveau lien : par exemple git@gitlab.istic.univ-rennes1.fr:monpseudo/tp1.http.git
|
||
4. Dans le **workspace d'eclipse** faites `git clone git@gitlab.istic.univ-rennes1.fr:monpseudo/tp1.http.git` avec l'url précédente.
|
||
5. Ouvrez le workspace dans eclipse.
|
||
6. Utilisez Import> "Existing Maven Projects".
|
||
7. Selectionnez le projet et validez.
|
||
|
||
Vous devriez avoir une version du projet dans votre propre compte gitlab.
|
||
|
||
Vous pouvez le partager avec votre binome et l'encadrant de TP.
|
||
|
||
|
||
## Rapport
|
||
|
||
J'ai fait ça avec Tuan Minh Vu.
|
||
|
||
Votre rapport doit être écrit ici en markdown.
|
||
|
||
Vous trouverez la syntaxe de markdown ici : https://docs.gitlab.com/ee/user/markdown.html
|
||
|
||
Placez vos images dans le répertoire images si nécessaire.
|
||
|
||
|
||
|
||
## Faire des diagrammes
|
||
|
||
En particulier vous pouvez utiliser [mermaid](https://mermaidjs.github.io/) :
|
||
|
||
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant Alice
|
||
participant Bob
|
||
Alice->John: Hello John, how are you?
|
||
loop Healthcheck
|
||
John->John: Fight against hypochondria
|
||
end
|
||
Note right of John: Rational thoughts <br/>prevail...
|
||
John-->Alice: Great!
|
||
John->Bob: How about you?
|
||
Bob-->John: Jolly good!
|
||
```
|
||
|
||
## Insérer du code
|
||
|
||
Insérer du `code` :
|
||
|
||
```java
|
||
public interface ClientHandler {
|
||
public void handle();
|
||
}
|
||
```
|
||
|
||
et des résultats :
|
||
|
||
```bash
|
||
[yo@capybara dkgr]$ nc google.fr 80
|
||
PWET /
|
||
HTTP/1.0 400 Bad Request
|
||
Content-Type: text/html; charset=UTF-8
|
||
Referrer-Policy: no-referrer
|
||
Content-Length: 1555
|
||
Date: Mon, 21 Jan 2019 12:18:02 GMT
|
||
|
||
<!DOCTYPE html>
|
||
<html lang=en>
|
||
<meta charset=utf-8>
|
||
```
|