diff --git a/webserver/.client.c.swp b/webserver/.client.c.swp
index 89bfb748a7ce25b0d9b9abd494ac610f6ec1825b..1aad83d5cbf6b3e4aac257f4777c24d68b7d3ebf 100644
Binary files a/webserver/.client.c.swp and b/webserver/.client.c.swp differ
diff --git a/webserver/.document.txt.swp b/webserver/.client.c.swp.save
similarity index 75%
rename from webserver/.document.txt.swp
rename to webserver/.client.c.swp.save
index 54dd4c4c00b2fab3b7db91a173d9677d338c3341..b86799163a6af268ebb63ebcfd0034b947390d31 100644
Binary files a/webserver/.document.txt.swp and b/webserver/.client.c.swp.save differ
diff --git a/webserver/.nano.swp b/webserver/.nano.swp
deleted file mode 100644
index 9a0a707f9ff6e8d7a6a754ec740646d767a2cf9a..0000000000000000000000000000000000000000
Binary files a/webserver/.nano.swp and /dev/null differ
diff --git a/webserver/..client.c.swp.swp b/webserver/.socket.c.swp
similarity index 87%
rename from webserver/..client.c.swp.swp
rename to webserver/.socket.c.swp
index 17b95d71f499cd101e051c580b8489881decd84e..76d211972c3b571d46420700438a25d4eb1132d5 100644
Binary files a/webserver/..client.c.swp.swp and b/webserver/.socket.c.swp differ
diff --git a/webserver/.test.swp b/webserver/.test.swp
deleted file mode 100644
index c5d593cd0bd14f5f57bd4022477ae4ae6a0cdb52..0000000000000000000000000000000000000000
Binary files a/webserver/.test.swp and /dev/null differ
diff --git a/webserver/client.c b/webserver/client.c
index f0d43e8205a9b52376b1074cff277a47e8a0924e..57fb9fa563b1c3074cc1bddf8be01dafa621cf28 100644
--- a/webserver/client.c
+++ b/webserver/client.c
@@ -50,7 +50,7 @@ FILE* check_and_open(const char* target, const char *document_root){
 
 char* rewrite_target(char *target){
 	char* ret = strrchr(target, '?');
-	printf("rewrite target ret : %s\n",ret);
+//	printf("rewrite target ret : %s\n",ret);
 	if(ret != NULL){
 		char* rep = malloc(strlen(target)*sizeof(char));
 		size_t i = (int)(strlen(target)-strlen(ret));
@@ -58,8 +58,8 @@ char* rewrite_target(char *target){
 		return rep;
 	}else{
 		char* rep = malloc(strlen(target)*sizeof(char));
-                size_t i = (int)(strlen(target));
-                rep = strncpy(rep,target+1,i);
+               	size_t i = (int)(strlen(target));
+               	rep = strncpy(rep,target+1,i);
 		return rep;
 	}
 }
@@ -110,7 +110,7 @@ void send_response(FILE *client, int code, const char *reason_phrase, const char
 
 int traitementClient(int socket_client){
 	/* On peut maintenant dialoguer avec le client */
-	char *motd="Votre requète est bonne";
+//	char *motd="Votre requète est bonne";
 	printf("test\n");
 	char str[8000];
 	http_request request;
@@ -130,28 +130,29 @@ int traitementClient(int socket_client){
 		}else{
 			send_response(fd, 400, "Bad Request", "Bad request");
 		}
-	}else if (strcmp(request.target, "/") == 0){
-		send_response(fd, 200, "OK", motd);
+	}else if (strcmp(request.target, "/html") == 0){
+		//send_response(fd, 200, "OK", motd);
 	//---
+        	char* absolute_path = rewrite_target(request.target);
+//		printf("test - - -  - - - - - %s\n",absolute_path);
+    		FILE* fichier = check_and_open(absolute_path, "index.html");
+    		if(fichier == NULL){
+                	send_response(fd, 404, "Not Found", "Not Found");
+        	}else{
+        		int size = get_file_size(fileno(fichier));
+        		send_status(fd, 200, "OK");
+			    fprintf(fd,"Content-Lenght : %d\r\n\r\n",size);
+           		if(copy(fichier,fd)==-1){
+                		//error
+        		}
+		}
+
 	}else{
 		send_response(fd, 404, "Not Found", "Not Found");
 	}
 	fflush(fd);
 	//partie 7
-	char* absolute_path = rewrite_target(request.target);
-	printf("test - - -  - - - - - %s\n",absolute_path);
-
-	FILE* fichier = check_and_open(absolute_path, "document.txt");
-	fprintf(fd,"fichier : \n");
-        if(fichier == NULL){
-                send_response(fd, 404, "Not Found2", "Not Found2");
-        }else{
-        	int size = get_file_size(fileno(fichier));
-        	if(copy(fichier,fd)==-1){
-                //error
-        	}
-		fprintf(fd,"Size : %d\n",size);
-	}
+	
 	fclose(fd);
     	return 0;
 }
diff --git a/webserver/client.c.save b/webserver/client.c.save
new file mode 100644
index 0000000000000000000000000000000000000000..014916e0d4c1da6d2d990558bfc3159213b5de06
--- /dev/null
+++ b/webserver/client.c.save
@@ -0,0 +1,160 @@
+#include <string.h>
+#include <unistd.h>
+#include <stdio.h>
+#include "socket.h"
+#include <netinet/in.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include "client.h"
+#include "http_parse.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+
+int copy(FILE* in, FILE* out){
+	int ch;
+	if(in && out){
+		ch = fgetc(in);
+		while(ch != EOF ){
+			fputc(ch,out);
+			ch=fgetc(in);
+		}
+	}else{
+	//error reading
+		exit(1);
+	}
+	return 0;
+}
+int get_file_size(int fd){
+	struct stat sb;
+	if(fstat(fd,&sb)==-1){
+		perror("stat");
+		exit(1);
+	}
+	return sb.st_size;
+	return 0;
+}
+
+FILE* check_and_open(const char* target, const char *document_root){
+	printf("check and open test\n");
+	char tmp[300]="";
+	strcat(tmp,target);
+	strcat(tmp,"/");
+	strcat(tmp,document_root);
+
+	printf("testons");
+	printf("check and open tmp : %s/%s \n tmp : %s \n",target,document_root,tmp);
+	return fopen(tmp,"r");
+}
+
+char* rewrite_target(char *target){
+	char* ret = strrchr(target, '?');
+//	printf("rewrite target ret : %s\n",ret);
+	if(ret != NULL){
+		char* rep = malloc(strlen(target)*sizeof(char));
+		size_t i = (int)(strlen(target)-strlen(ret));
+		rep = strncpy(rep,target+1,i-1);
+		return rep;
+	}else{
+		char* rep = malloc(strlen(target)*sizeof(char));
+               	size_t i = (int)(strlen(target));
+               	rep = strncpy(rep,target+1,i);
+		return rep;
+	}
+}
+
+
+char* fgets_or_exit(char * buffer, int size, FILE *fd){
+        char * ret = fgets(buffer,size,fd);
+        if(ret){
+                return ret;
+        } else {
+                exit(1);
+        }
+}
+
+
+
+int is_crlf(const char *str){
+	return (str[0] == '\r' && str[1] == '\n') || str[0] =='\n';
+}
+
+
+void skip_headers(FILE *client){
+	//passer les headers files
+	char buffer[8000];
+	while(1){
+		fgets_or_exit(buffer, sizeof(buffer), client);
+		if (is_crlf(buffer))
+		break;
+	}
+}
+
+
+void send_status(FILE *client, int code, const char *reason_phrase){
+	//transmet le status au client (1ère ligne)
+	fprintf(client, "HTTP/1.1 %d %s\r\n",code,reason_phrase);
+}
+
+void send_response(FILE *client, int code, const char *reason_phrase, const char *message_body){
+	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);
+}
+
+
+
+int traitementClient(int socket_client){
+	/* On peut maintenant dialoguer avec le client */
+	char *motd="Votre requète est bonne";
+	printf("test\n");
+	char str[8000];
+	http_request request;
+	FILE *fd;
+	fd = fdopen(socket_client, "a+");
+	if(fd == NULL) {
+		perror("Error opening file\n");
+		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);
+	if (parse_ret == -1) {
+		if (request.method == HTTP_UNSUPPORTED){
+			send_response(fd, 405, "Method Not Allowed", "Method Not Allowed");
+		}else{
+			send_response(fd, 400, "Bad Request", "Bad request");
+		}
+	}else if (strcmp(request.target, "/html") == 0){
+		send_response(fd, 200, "OK", motd);
+	//---
+
+
+
+	}else{
+		send_response(fd, 404, "Not Found", "Not Found");
+	}
+	fflush(fd);
+	//partie 7
+	char* absolute_path = rewrite_target(request.target);
+	printf("test - - -  - - - - - %s\n",absolute_path);
+
+	FILE* fichier = check_and_open(absolute_path, "index.html");
+//	fprintf(fd,"fichier : \n");
+        if(fichier == NULL){
+                send_response(fd, 404, "Not Found2", "Not Found2");
+        }else{
+        	int size = get_file_size(fileno(fichier));
+        	if(copy(fichier,fd)==-1){
+                //error
+        	}
+		//fprintf(fd,"Size : %d\n",size);
+	}
+	fclose(fd);
+    	return 0;
+}
diff --git a/webserver/client.c.save.1 b/webserver/client.c.save.1
new file mode 100644
index 0000000000000000000000000000000000000000..b23f9b1bfc506e8d1f29f4191ff7a6eb0800449c
--- /dev/null
+++ b/webserver/client.c.save.1
@@ -0,0 +1,144 @@
+#include <string.h>
+#include <unistd.h>
+#include <stdio.h>
+#include "socket.h"
+#include <netinet/in.h>
+#include <sys/wait.h>
+#include <stdlib.h>
+#include "client.h"
+#include "http_parse.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+
+int copy(FILE* in, FILE* out){
+	int ch;
+	if(in && out){
+		while((ch =( fgetc(in))!= EOF) ){
+			fputc(ch,out);
+		}
+	}else{
+	//error reading
+		exit(1);
+	}
+	return 0;
+}
+int get_file_size(int fd){
+	struct stat sb;
+	if(fstat(fd,&sb)==-1){
+		perror("stat");
+		exit(1);
+	}
+	return sb.st_size;
+	return 0;
+}
+
+FILE* check_and_open(const char* target, const char *document_root){
+	char*tmp="";
+	strcat(tmp,target);
+	strcat(tmp,document_root);
+	strcat(tmp,"\n");
+	return fopen(tmp,"r");
+}
+
+char* rewrite_target(char *target){
+	char* ret = strrchr(target, '?');
+	char* rep = malloc(strlen(target)*sizeof(char));
+    if (ret!= NULL){
+        size_t i = (int)(strlen(target)-strlen(ret));
+	    rep = strncpy(rep,target,i);
+    }
+	return rep;
+}
+
+
+char* fgets_or_exit(char * buffer, int size, FILE *fd){
+        char * ret = fgets(buffer,size,fd);
+        if(ret){
+                return ret;
+        } else {
+                exit(1);
+        }
+}
+
+
+
+int is_crlf(const char *str){
+	return (str[0] == '\r' && str[1] == '\n') || str[0] =='\n';
+}
+
+
+void skip_headers(FILE *client){
+	//passer les headers files
+	char buffer[8000];
+	while(1){
+		fgets_or_exit(buffer, sizeof(buffer), client);
+		if (is_crlf(buffer))
+		break;
+	}
+}
+
+
+void send_status(FILE *client, int code, const char *reason_phrase){
+	//transmet le status au client (1ère ligne)
+	fprintf(client, "HTTP/1.1 %d %s\r\n",code,reason_phrase);
+}
+
+void send_response(FILE *client, int code, const char *reason_phrase, const char *message_body){
+	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);
+}
+
+
+
+int traitementClient(int socket_client){
+	/* On peut maintenant dialoguer avec le client */
+	char *motd="Votre requète est bonne";
+	printf("test\n");
+	char str[8000];
+	http_request request;
+	FILE *fd;
+	fd = fdopen(socket_client, "a+");
+	if(fd == NULL) {
+		perror("Error opening file\n");
+		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);
+	if (parse_ret == -1) {
+		if (request.method == HTTP_UNSUPPORTED){
+			send_response(fd, 405, "Method Not Allowed", "Method Not Allowed");
+		}else{
+			send_response(fd, 400, "Bad Request", "Bad request");
+		}
+	}else if (strcmp(request.target, "/") == 0){
+		send_response(fd, 200, "OK", motd);
+	//---
+	}else{
+		send_response(fd, 404, "Not Found", "Not Found");
+	}
+	//fflush(fd);
+	//partie 7
+	char* absolute_path = rewrite_target(request.target);
+	printf("test - - -  - - - - - %s\n",absolute_path);
+
+	FILE* fichier = check_and_open(absolute_path, "document.txt");
+        if(fichier == NULL){
+                send_response(fd, 404, "Not Found", "Not Found");
+        }
+        int size = get_file_size(fileno(fichier));
+        if(copy(fichier,fd)==-1){
+                //error
+        }
+	fprintf(fd,"Size : %d\n",size);
+
+	fclose(fd);
+    return 0;
+}
diff --git a/webserver/client.o b/webserver/client.o
index 7c8cbca5fa3bfa1170d9f816730c56282f35a0f3..88b2369c111e19c7d878762d520d6a8990874f8a 100644
Binary files a/webserver/client.o and b/webserver/client.o differ
diff --git a/webserver/html/index.html b/webserver/html/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..8c33582881288e8139547479adbcb9e17f949aef
--- /dev/null
+++ b/webserver/html/index.html
@@ -0,0 +1,34 @@
+<html>
+<head>
+<title>       </title>
+<style type="text/css">
+<!--
+h1	{text-align:center;
+	font-family:Arial, Helvetica, Sans-Serif;
+	}
+
+p	{text-indent:20px;
+	}
+-->
+</style>
+</head>
+<body bgcolor = "#ffffcc" text = "#000000">
+<h1>Hello, World!</h1>
+
+<p>You can modify the text in the box to the left any way you like, and
+then click the "Show Page" button below the box to display the
+result here. Go ahead and do this as often and as long as you like.</p>
+
+<p>You can also use this page to test your Javascript functions and local
+style declarations. Everything you do will be handled entirely by your own
+browser; nothing you type into the text box will be sent back to the
+server.</p>
+
+<p>When you are satisfied with your page, you can select all text in the
+textarea and copy it to a new text file, with an extension of
+either <b>.htm</b> or <b>.html</b>, depending on your Operating System.
+This file can then be moved to your Web server.</p>
+
+</body>
+</html>
+	
diff --git a/webserver/pawnee b/webserver/pawnee
index 64b0a4f448da27deb176f20f2ac22a8016a27c44..7898a0eeef236ff65f4a0899df1707b396d61081 100755
Binary files a/webserver/pawnee and b/webserver/pawnee differ
diff --git a/webserver/socket.c b/webserver/socket.c
index 84ed6a3109be6c69442977f7001c1f445af134ef..10c3514958a161952f284f90e1dee4addcc88c70 100644
--- a/webserver/socket.c
+++ b/webserver/socket.c
@@ -55,7 +55,7 @@ int creer_serveur(int port){
 			perror("fork fail");
 			exit(1);
 		}else if(pid > 0) {
-			//close(socket_client);  fait une erreur si on le met
+			close(socket_client);//  fait une erreur si on le met
 		}else{ // à déplacer ailleurs pour une meilleure lisibilité
 			 //traitement final
         		traitementClient(socket_client);
diff --git a/webserver/socket.o b/webserver/socket.o
index 02a2d23ceca50a003abc28b9e641d79a42a5ea7a..20535edd1ca9c83a38a339db091c21897291131a 100644
Binary files a/webserver/socket.o and b/webserver/socket.o differ
diff --git a/webserver/test/document.txt b/webserver/test/document.txt
deleted file mode 100644
index 8eca45cd5ac9af096831abc25a50e6c38755d142..0000000000000000000000000000000000000000
--- a/webserver/test/document.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-testons
-le
-fopen