diff --git a/webserver/Makefile b/webserver/Makefile
index f33aa73ae56f6d3b8e18591a3aef85e218d7ec3c..abfe81bf1acf7b4a19b9f4a3ba1fe5499932f2b8 100644
--- a/webserver/Makefile
+++ b/webserver/Makefile
@@ -1,65 +1,60 @@
-# Ces variables servent à préciser le compilateur que l'on veut utiliser
-# ainsi que les paramètres de compilation
-WRAPPER=$(if $(shell which clang), clang, gcc)
-CC=$(WRAPPER)
-LD=$(WRAPPER)
-CFLAGS=-Wall -W -Werror -g -I../../parselib
-LDFLAGS=-lpthread -lrt -L../../parselib -lhttp_parse
-
-# Le nom de l'exécutable à fabriquer
-EXE=pawnee
-
-# Les variables HEADERS, CFILES et OBJS vont contenir respectivement
-# la listes des fichiers .h, .c et le nom des fichiers .o à fabriquer
-# On utilise la directive particulière \$(wildcard ...) qui permet
-# de construire automatiquement une liste de fichiers
-HEADERS=$(wildcard *.h)
-CFILES=$(wildcard *.c)
-# Cette construction de variable veut dire: remplacer la chaine ".c" par
-# ".o" dans la variable CFILES
-# Ceci nous permet de construire la liste des fichiers .o à fabriquer
-OBJS=$(CFILES:.c=.o)
-
-# Même utilisation que précédemment. On précise les règles qui
-# ne fabrique pas de fichier du nom de leur cible
-.PHONY: all clean mrproper
-
-# La règle par défaut déclenche la fabrication de l'exécutable
-# par dépendance
-all: alldeps $(EXE)
-
-.PHONY: alldeps
-alldeps:
-	make -C ../../parselib
-
-# Cette règle permet de construire l'exécutable. Elle dépend des fichiers
-# .o et effectue l'édition de lien. Rien de nouveau ici
-$(EXE): $(OBJS)
-	$(LD) $^ $(LDFLAGS) -o $@ 
-
-# Cette règle permet de construire automatiquement les règles
-# de compilation pour chacun des fichiers .c
-# l'option -MM de gcc analyse un fichier .c et
-# affiche sur sa sortie standard une règle compatible
-# make pour le compiler.
-# Ceci permet d'ajouter automatiquement les fichiers .h aux dépendances
-# des fichiers .o à construire. Ainsi, en modifiant un fichier .h
-# tous les fichiers .c qui incluent ce fichier sont recompilés
-# Après votre première compilation, regardez le contenu du fichier
-# makefile.dep généré afin de comprendre exactement de quoi il retourne.
-makefile.dep: $(CFILES) $(HEADERS)
-	$(CC) $(CFLAGS) -MM $(CFILES) > $@
-
-# Cette règle efface le fichier de dépendances et les fichiers .o
-clean:
-	$(RM) $(OBJS) makefile.dep
-
-# Cette règle effectue la précédente et efface en plus l'exécutable
-mrproper: clean
-	$(RM) $(EXE)
-
-# On inclue le fichier de dépendance qui va contenir les règles
-# de construction des fichiers .o
-# S'il n'existe pas, make invoque automatiquement la règle
-# qui l'a pour cible
-include makefile.dep
+# Ces variables servent à préciser le compilateur que l'on veut utiliser
+# ainsi que les paramètres de compilation
+CC=gcc
+LD=gcc
+CFLAGS=-Wall -W -Werror -g
+LDFLAGS= -g -pthread
+
+# Le nom de l'exécutable à fabriquer
+EXE=pawnee
+
+# Les variables HEADERS, CFILES et OBJS vont contenir respectivement
+# la listes des fichiers .h, .c et le nom des fichiers .o à fabriquer
+# On utilise la directive particulière \$(wildcard ...) qui permet
+# de construire automatiquement une liste de fichiers
+HEADERS=$(wildcard *.h)
+CFILES=$(wildcard *.c)
+# Cette construction de variable veut dire : remplacer la chaine ".c" par
+# ".o" dans la variable CFILES
+# Ceci nous permet de construire la liste des fichiers .o à fabriquer
+OBJS=$(CFILES:.c=.o)
+
+# Même utilisation que précédemment. On précise les règles qui
+# ne fabrique pas de fichier du nom de leur cible
+.PHONY: all clean mrproper
+
+# La règle par défaut déclenche la fabrication de l'exécutable
+# par dépendance
+all: $(EXE)
+
+# Cette règle permet de construire l'exécutable. Elle dépend des fichiers
+# .o et effectue l'édition de lien. Rien de nouveau ici
+$(EXE): $(OBJS)
+	$(LD) $^ $(LDFLAGS) -o $@
+
+# Cette règle permet de construire automatiquement les règles
+# de compilation pour chacun des fichiers .c
+# l'option -MM de gcc analyse un fichier .c et
+# affiche sur sa sortie standard une règle compatible
+# make pour le compiler.
+# Ceci permet d'ajouter automatiquement les fichiers .h aux dépendances
+# des fichiers .o à construire. Ainsi, en modifiant un fichier .h
+# tous les fichiers .c qui incluent ce fichier sont recompilés
+# Après votre première compilation, regardez le contenu du fichier
+# makefile.dep généré afin de comprendre exactement de quoi il retourne.
+makefile.dep: $(CFILES) $(HEADERS)
+	$(CC) -MM $(CFILES) > $@
+
+# Cette règle efface le fichier de dépendances et les fichiers .o
+clean:
+	$(RM) $(OBJS) makefile.dep
+
+# Cette règle effectue la précédente et efface en plus l'exécutable
+mrproper: clean
+	$(RM) $(EXE)
+
+# On inclue le fichier de dépendance qui va contenir les règles
+# de construction des fichiers .o
+# S'il n'existe pas, make invoque automatiquement la règle
+# qui l'a pour cible
+include makefile.dep
diff --git a/webserver/client.c b/webserver/client.c
index 3003183fd20794bd7b78f7d63f28573c7d392bd6..86a95857ade864e7a875ecddbe972ecce0740153 100644
--- a/webserver/client.c
+++ b/webserver/client.c
@@ -11,7 +11,9 @@
 char* rewrite_target(char *target){
 	char* ret = strchr(target, '?');
 	char* rep ="";
-	strncpy(rep,target,atoi(ret)-1);
+    if (ret!= NULL){
+	    strncpy(rep,target,atoi(ret)-1);
+    }
 	return rep;
 }
 
@@ -49,12 +51,14 @@ void send_status(FILE *client, int code, const char *reason_phrase){
 }
 
 void send_response(FILE *client, int code, const char *reason_phrase, const char *message_body){
+    fprintf(client, "entree dans send_response\n");
 	send_status(client,code,reason_phrase);
 	//transmet la réponse complète (la suite)
 	fprintf(client,"Content-Lenght: %u\r\n",(unsigned int)strlen(message_body));
 	fprintf(client,"\r\n");
 	fprintf(client,"%s\r\n",message_body);
-	fflush(client);
+    fprintf(client, "sortie de send_response\n");
+    fflush(client);    
 }
 
 
@@ -70,9 +74,12 @@ int traitementClient(int socket_client){
 		perror("Error opening file");
 		exit(1);
 	}
+    
+    //fprintf(fd,"pas d'erreurs d'ouverture\n");
 	fgets_or_exit(str,8000,fd);
 	int parse_ret = parse_http_request(str,&request);
 	skip_headers(fd);
+    fprintf(fd, "avant if parse_ret\n");
 	if (parse_ret == -1) {
 		if (request.method == HTTP_UNSUPPORTED){
 			send_response(fd, 405, "Method Not Allowed", "Method Not Allowed");
@@ -81,14 +88,16 @@ int traitementClient(int socket_client){
 		}
 	}else if (strcmp(request.target, "/") == 0){
 		send_response(fd, 200, "OK", motd);
+        fprintf(fd, "fin du else-if\n");
 	}else{
 		send_response(fd, 404, "Not Found", "Not Found");
 	}
+    fflush(fd);
+    fprintf(fd, "après if parse_ret\n");
 	//partie 7
-	char* absolute_path = rewrite_target(request.target);
-	fprintf(fd,"test - - -  - - -  - - \n%s",absolute_path);
-
-
+    fprintf(fd, "avant rewrite\n");
+    char* absolute_path = rewrite_target(request.target);
+	fprintf(fd,"test - - -  - - - - - %s\n",absolute_path);
 	fclose(fd);
     return 0;
 }
diff --git a/webserver/client.o b/webserver/client.o
index d124f3cc86bedbf2cde2f5b4f691d68f3f19bcd1..066d5262986b302f03094657c64a67905db02f24 100644
Binary files a/webserver/client.o and b/webserver/client.o differ
diff --git a/webserver/http_parse.o b/webserver/http_parse.o
index 201d5634e46c81fa7db63169a55f2cd59abb0c03..6d49f80407ace1f2b89d7c6a08a031e63df2bcf6 100644
Binary files a/webserver/http_parse.o and b/webserver/http_parse.o differ
diff --git a/webserver/main.o b/webserver/main.o
index 069932ca1a8d105bc2eeebc17a2c1ee144b6ed54..43a7c9df27260246aae85e79fc077fbb8043f425 100644
Binary files a/webserver/main.o and b/webserver/main.o differ
diff --git a/webserver/pawnee b/webserver/pawnee
index c3585590cefcc0ba0ce2a1c494f02c734cccb5cc..31cf41fdf96cf65c5704e25bfb80e00d06621ed6 100755
Binary files a/webserver/pawnee and b/webserver/pawnee differ
diff --git a/webserver/socket.o b/webserver/socket.o
index 0df2fc98e5debf3f76433bd18a7dccc2fec6200a..02a2d23ceca50a003abc28b9e641d79a42a5ea7a 100644
Binary files a/webserver/socket.o and b/webserver/socket.o differ