diff --git a/include/types/proto_http.h b/include/types/proto_http.h
index a00c880..58a89ff 100644
--- a/include/types/proto_http.h
+++ b/include/types/proto_http.h
@@ -24,6 +24,9 @@
 
 #include <common/config.h>
 
+#include <types/buffers.h>
+#include <types/hdr_idx.h>
+
 /*
  * FIXME: break this into HTTP state and TCP socket state.
  * See server.h for the other end.
@@ -135,6 +138,74 @@
 	DATA_ST_PX_FIN,
 };
 
+/* Known HTTP methods */
+typedef enum {
+	HTTP_METH_NONE = 0,
+	HTTP_METH_OPTIONS,
+	HTTP_METH_GET,
+	HTTP_METH_HEAD,
+	HTTP_METH_POST,
+	HTTP_METH_PUT,
+	HTTP_METH_DELETE,
+	HTTP_METH_TRACE,
+	HTTP_METH_CONNECT,
+	HTTP_METH_OTHER,
+} http_meth_t;
+
+/* This is an HTTP message, as described in RFC2616. It can be either a request
+ * message or a response message.
+ *
+ * The values there are a little bit obscure, because their meaning can change
+ * during the parsing :
+ *
+ *  - som (Start of Message) : relative offset in the buffer of first byte of
+ *                             the request being processed or parsed. Reset to
+ *                             zero during accept().
+ *  - eoh (End of Headers)   : relative offset in the buffer of first byte that
+ *                             is not part of a completely processed header.
+ *                             During parsing, it points to last header seen
+ *                             for states after START.
+ *  - eol (End of Line)      : relative offset in the buffer of the first byte
+ *                             which marks the end of the line (LF or CRLF).
+ */
+struct http_msg {
+	int msg_state;                  /* where we are in the current message parsing */
+	char *sol, *eol;		/* start of line, end of line */
+	int som;			/* Start Of Message, relative to buffer */
+	int col, sov;			/* current header: colon, start of value */
+	int eoh;			/* End Of Headers, relative to buffer */
+	char **cap;			/* array of captured headers (may be NULL) */
+	union {				/* useful start line pointers, relative to buffer */
+		struct {
+			int l;		/* request line length (not including CR) */
+			int m_l;	/* METHOD length (method starts at ->som) */
+			int u, u_l;	/* URI, length */
+			int v, v_l;	/* VERSION, length */
+		} rq;			/* request line : field, length */
+		struct {
+			int l;		/* status line length (not including CR) */
+			int v_l;	/* VERSION length (version starts at ->som) */
+			int c, c_l;	/* CODE, length */
+			int r, r_l;	/* REASON, length */
+		} st;			/* status line : field, length */
+	} sl;				/* start line */
+};
+
+/* This is an HTTP transaction. It contains both a request message and a
+ * response message (which can be empty).
+ */
+struct http_txn {
+	http_meth_t meth;		/* HTTP method */
+	struct hdr_idx hdr_idx;         /* array of header indexes (max: MAX_HTTP_HDR) */
+	struct chunk auth_hdr;		/* points to 'Authorization:' header */
+	struct http_msg req, rsp;	/* HTTP request and response messages */
+
+	char *uri;			/* first line if log needed, NULL otherwise */
+	char *cli_cookie;		/* cookie presented by the client, in capture mode */
+	char *srv_cookie;		/* cookie presented by the server, in capture mode */
+	int status;			/* HTTP status from the server, negative if from proxy */
+};
+
 
 #endif /* _TYPES_PROTO_HTTP_H */
 
diff --git a/include/types/session.h b/include/types/session.h
index 885c3ff..99f8819 100644
--- a/include/types/session.h
+++ b/include/types/session.h
@@ -32,11 +32,11 @@
 #include <common/mini-clist.h>
 
 #include <types/buffers.h>
+#include <types/proto_http.h>
 #include <types/proxy.h>
 #include <types/queue.h>
 #include <types/server.h>
 #include <types/task.h>
-#include <types/hdr_idx.h>
 
 
 /* various session flags, bits values 0x01 to 0x20 (shift 0) */
@@ -100,71 +100,6 @@
 #define SN_SELF_GEN	0x02000000	/* the proxy generates data for the client (eg: stats) */
 #define SN_CLTARPIT	0x04000000	/* the session is tarpitted (anti-dos) */
 
-typedef enum {
-	HTTP_METH_NONE = 0,
-	HTTP_METH_OPTIONS,
-	HTTP_METH_GET,
-	HTTP_METH_HEAD,
-	HTTP_METH_POST,
-	HTTP_METH_PUT,
-	HTTP_METH_DELETE,
-	HTTP_METH_TRACE,
-	HTTP_METH_CONNECT,
-	HTTP_METH_OTHER,
-} http_meth_t;
-
-/* FIXME-20070107: this should move out to another file when HTTP will not be
- * in the session anymore.
- */
-
-/* This is an HTTP message, as described in RFC2616. It can be either a request
- * message or a response message.
- *
- * The values there are a little bit obscure, because their meaning can change
- * during the parsing :
- *
- *  - som (Start of Message) : relative offset in the buffer of first byte of
- *                             the request being processed or parsed. Reset to
- *                             zero during accept().
- *  - eoh (End of Headers)   : relative offset in the buffer of first byte that
- *                             is not part of a completely processed header.
- *                             During parsing, it points to last header seen
- *                             for states after START.
- *  - eol (End of Line)      : relative offset in the buffer of the first byte
- *                             which marks the end of the line (LF or CRLF).
- */
-struct http_msg {
-	int msg_state;                  /* where we are in the current message parsing */
-	char *sol, *eol;		/* start of line, end of line */
-	int som;			/* Start Of Message, relative to buffer */
-	int col, sov;			/* current header: colon, start of value */
-	int eoh;			/* End Of Headers, relative to buffer */
-	char **cap;			/* array of captured headers (may be NULL) */
-	union {				/* useful start line pointers, relative to buffer */
-		struct {
-			int l;		/* request line length (not including CR) */
-			int m_l;	/* METHOD length (method starts at ->som) */
-			int u, u_l;	/* URI, length */
-			int v, v_l;	/* VERSION, length */
-		} rq;			/* request line : field, length */
-		struct {
-			int l;		/* status line length (not including CR) */
-			int v_l;	/* VERSION length (version starts at ->som) */
-			int c, c_l;	/* CODE, length */
-			int r, r_l;	/* REASON, length */
-		} st;			/* status line : field, length */
-	} sl;				/* start line */
-};
-
-/* This is an HTTP transaction. It contains both a request message and a
- * response message (which can be empty).
- */
-struct http_txn {
-	http_meth_t meth;		/* HTTP method */
-	struct hdr_idx hdr_idx;         /* array of header indexes (max: MAX_HTTP_HDR) */
-	struct chunk auth_hdr;		/* points to 'Authorization:' header */
-	struct http_msg req, rsp;	/* HTTP request and response messages */
-};
 
 /* WARNING: if new fields are added, they must be initialized in event_accept()
  * and freed in session_free() !
@@ -194,13 +129,9 @@
 		long  t_queue;			/* delay before the session gets out of the connect queue, -1 if never occurs */
 		long  t_connect;		/* delay before the connect() to the server succeeds, -1 if never occurs */
 		long  t_data;			/* delay before the first data byte from the server ... */
-		unsigned long  t_close;		/* total session duration */
+		unsigned long t_close;		/* total session duration */
 		unsigned long srv_queue_size;	/* number of sessions waiting for a connect slot on this server at accept() time (in direct assignment) */
 		unsigned long prx_queue_size;	/* overall number of sessions waiting for a connect slot on this instance at accept() time */
-		char *uri;			/* first line if log needed, NULL otherwise */
-		char *cli_cookie;		/* cookie presented by the client, in capture mode */
-		char *srv_cookie;		/* cookie presented by the server, in capture mode */
-		int status;			/* HTTP status from the server, negative if from proxy */
 		long long bytes_in;		/* number of bytes transferred from the client to the server */
 		long long bytes_out;		/* number of bytes transferred from the server to the client */
 	} logs;
diff --git a/src/client.c b/src/client.c
index 1f0fdc6..1a1ccca 100644
--- a/src/client.c
+++ b/src/client.c
@@ -185,10 +185,6 @@
 		s->logs.t_connect = -1;
 		s->logs.t_data = -1;
 		s->logs.t_close = 0;
-		s->logs.uri = NULL;
-		s->logs.cli_cookie = NULL;
-		s->logs.srv_cookie = NULL;
-		s->logs.status = -1;
 		s->logs.bytes_in = s->logs.bytes_out = 0;
 		s->logs.prx_queue_size = 0;  /* we get the number of pending conns before us */
 		s->logs.srv_queue_size = 0; /* we will get this number soon */
@@ -205,6 +201,11 @@
 		txn->hdr_idx.size = txn->hdr_idx.used = 0;
 
 		if (p->mode == PR_MODE_HTTP) {
+			txn->uri = NULL;
+			txn->cli_cookie = NULL;
+			txn->srv_cookie = NULL;
+			txn->status = -1;
+
 			txn->req.msg_state = HTTP_MSG_RQBEFORE; /* at the very beginning of the request */
 			txn->req.sol = txn->req.eol = NULL;
 			txn->req.som = txn->req.eoh = 0; /* relative to the buffer */
diff --git a/src/log.c b/src/log.c
index 9317acd..a67a46d 100644
--- a/src/log.c
+++ b/src/log.c
@@ -321,7 +321,7 @@
 			  (const void *)&((struct sockaddr_in6 *)(&s->cli_addr))->sin6_addr,
 			  pn, sizeof(pn));
 
-	uri = (log & LW_REQ) ? s->logs.uri ? s->logs.uri : "<BADREQ>" : "";
+	uri = (log & LW_REQ) ? txn->uri ? txn->uri : "<BADREQ>" : "";
 	pxid = be->beprm->id;
 	srv = (tolog & LW_SVID) ?
 		(s->data_source != DATA_SRC_STATS) ?
@@ -404,10 +404,10 @@
 			 (s->logs.t_connect >= 0) ? s->logs.t_connect - s->logs.t_queue : -1,
 			 (s->logs.t_data >= 0) ? s->logs.t_data - s->logs.t_connect : -1,
 			 (tolog & LW_BYTES) ? "" : "+", s->logs.t_close,
-			 s->logs.status,
+			 txn->status,
 			 (tolog & LW_BYTES) ? "" : "+", s->logs.bytes_in,
-			 s->logs.cli_cookie ? s->logs.cli_cookie : "-",
-			 s->logs.srv_cookie ? s->logs.srv_cookie : "-",
+			 txn->cli_cookie ? txn->cli_cookie : "-",
+			 txn->srv_cookie ? txn->srv_cookie : "-",
 			 sess_term_cond[(s->flags & SN_ERR_MASK) >> SN_ERR_SHIFT],
 			 sess_fin_state[(s->flags & SN_FINST_MASK) >> SN_FINST_SHIFT],
 			 (be->beprm->options & PR_O_COOK_ANY) ? sess_cookie[(s->flags & SN_CK_MASK) >> SN_CK_SHIFT] : '-',
diff --git a/src/proto_http.c b/src/proto_http.c
index ea9ebc8..7ed6929 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -362,7 +362,7 @@
 {
 	t->srv_state = SV_STCLOSE;
 	if (status > 0 && msg) {
-		t->logs.status = status;
+		t->txn.status = status;
 		if (t->fe->mode == PR_MODE_HTTP)
 			client_return(t, msg);
 	}
@@ -1287,7 +1287,7 @@
 			/* 3: has the read timeout expired ? */
 			else if (unlikely(tv_cmp2_ms(&req->rex, &now) <= 0)) {
 				/* read timeout : give up with an error message. */
-				t->logs.status = 408;
+				txn->status = 408;
 				client_retnclose(t, error_message(t, HTTP_ERR_408));
 				t->fe->failed_req++;
 				if (!(t->flags & SN_ERR_MASK))
@@ -1338,7 +1338,7 @@
 			 * We have found the monitor URI
 			 */
 			t->flags |= SN_MONITOR;
-			t->logs.status = 200;
+			txn->status = 200;
 			client_retnclose(t, &http_200_chunk);
 			goto return_prx_cond;
 		}
@@ -1350,13 +1350,13 @@
 		 */
 		if (unlikely(t->logs.logwait & LW_REQ)) {
 			/* we have a complete HTTP request that we must log */
-			if ((t->logs.uri = pool_alloc(requri)) != NULL) {
+			if ((txn->uri = pool_alloc(requri)) != NULL) {
 				int urilen = msg->sl.rq.l;
 
 				if (urilen >= REQURI_LEN)
 					urilen = REQURI_LEN - 1;
-				memcpy(t->logs.uri, &req->data[msg->som], urilen);
-				t->logs.uri[urilen] = 0;
+				memcpy(txn->uri, &req->data[msg->som], urilen);
+				txn->uri[urilen] = 0;
 
 				if (!(t->logs.logwait &= ~LW_REQ))
 					sess_log(t);
@@ -1452,7 +1452,7 @@
 			/* has the request been denied ? */
 			if (t->flags & SN_CLDENY) {
 				/* no need to go further */
-				t->logs.status = 403;
+				txn->status = 403;
 				/* let's log the request time */
 				t->logs.t_request = tv_diff(&t->logs.tv_accept, &now);
 				client_retnclose(t, error_message(t, HTTP_ERR_403));
@@ -1681,7 +1681,7 @@
 
 	return_bad_req: /* let's centralize all bad requests */
 		txn->req.msg_state = HTTP_MSG_ERROR;
-		t->logs.status = 400;
+		txn->status = 400;
 		client_retnclose(t, error_message(t, HTTP_ERR_400));
 		t->fe->failed_req++;
 	return_prx_cond:
@@ -2297,7 +2297,7 @@
 				}
 				t->be->failed_resp++;
 				t->srv_state = SV_STCLOSE;
-				t->logs.status = 502;
+				txn->status = 502;
 				client_return(t, error_message(t, HTTP_ERR_502));
 				if (!(t->flags & SN_ERR_MASK))
 					t->flags |= SN_ERR_SRVCL;
@@ -2340,7 +2340,7 @@
 				}
 				t->be->failed_resp++;
 				t->srv_state = SV_STCLOSE;
-				t->logs.status = 504;
+				txn->status = 504;
 				client_return(t, error_message(t, HTTP_ERR_504));
 				if (!(t->flags & SN_ERR_MASK))
 					t->flags |= SN_ERR_SRVTO;
@@ -2447,9 +2447,9 @@
 		 */
 
 		t->logs.logwait &= ~LW_RESP;
-		t->logs.status = strl2ui(rep->data + msg->sl.st.c, msg->sl.st.c_l);
+		txn->status = strl2ui(rep->data + msg->sl.st.c, msg->sl.st.c_l);
 
-		switch (t->logs.status) {
+		switch (txn->status) {
 		case 200:
 		case 203:
 		case 206:
@@ -2512,7 +2512,7 @@
 					tv_eternity(&req->wex);
 					fd_delete(t->srv_fd);
 					t->srv_state = SV_STCLOSE;
-					t->logs.status = 502;
+					txn->status = 502;
 					client_return(t, error_message(t, HTTP_ERR_502));
 					if (!(t->flags & SN_ERR_MASK))
 						t->flags |= SN_ERR_PRXCOND;
@@ -3058,7 +3058,7 @@
 	}
 	else {
 		/* unknown data source */
-		s->logs.status = 500;
+		s->txn.status = 500;
 		client_retnclose(s, error_message(s, HTTP_ERR_500));
 		if (!(s->flags & SN_ERR_MASK))
 			s->flags |= SN_ERR_PRXCOND;
@@ -3099,7 +3099,7 @@
 			     "Content-Type: text/html\r\n"
 			     "\r\n");
 
-		s->logs.status = 200;
+		s->txn.status = 200;
 		client_retnclose(s, &msg); // send the start of the response.
 		msg.len = 0;
 
@@ -3291,7 +3291,7 @@
 
 	default:
 		/* unknown state ! */
-		s->logs.status = 500;
+		s->txn.status = 500;
 		client_retnclose(s, error_message(s, HTTP_ERR_500));
 		if (!(s->flags & SN_ERR_MASK))
 			s->flags |= SN_ERR_PRXCOND;
@@ -3954,18 +3954,18 @@
 			else {
 				/* first, let's see if we want to capture it */
 				if (t->fe->fiprm->capture_name != NULL &&
-				    t->logs.cli_cookie == NULL &&
+				    txn->cli_cookie == NULL &&
 				    (p4 - p1 >= t->fe->fiprm->capture_namelen) &&
 				    memcmp(p1, t->fe->fiprm->capture_name, t->fe->fiprm->capture_namelen) == 0) {
 					int log_len = p4 - p1;
 
-					if ((t->logs.cli_cookie = pool_alloc(capture)) == NULL) {
+					if ((txn->cli_cookie = pool_alloc(capture)) == NULL) {
 						Alert("HTTP logging : out of memory.\n");
 					} else {
 						if (log_len > t->fe->fiprm->capture_len)
 							log_len = t->fe->fiprm->capture_len;
-						memcpy(t->logs.cli_cookie, p1, log_len);
-						t->logs.cli_cookie[log_len] = 0;
+						memcpy(txn->cli_cookie, p1, log_len);
+						txn->cli_cookie[log_len] = 0;
 					}
 				}
 
@@ -4345,7 +4345,7 @@
 			/* we have a full respnse and we know that we have either a CR
 			 * or an LF at <ptr>.
 			 */
-			t->logs.status = strl2ui(rtr->data + txn->rsp.sl.st.c, txn->rsp.sl.st.c_l);
+			txn->status = strl2ui(rtr->data + txn->rsp.sl.st.c, txn->rsp.sl.st.c_l);
 			hdr_idx_set_start(&txn->hdr_idx, txn->rsp.sl.rq.l, *cur_end == '\r');
 			/* there is no point trying this regex on headers */
 			return 1;
@@ -4487,19 +4487,19 @@
 
 			/* first, let's see if we want to capture it */
 			if (t->be->fiprm->capture_name != NULL &&
-			    t->logs.srv_cookie == NULL &&
+			    txn->srv_cookie == NULL &&
 			    (p4 - p1 >= t->be->fiprm->capture_namelen) &&
 			    memcmp(p1, t->be->fiprm->capture_name, t->be->fiprm->capture_namelen) == 0) {
 				int log_len = p4 - p1;
 
-				if ((t->logs.srv_cookie = pool_alloc(capture)) == NULL) {
+				if ((txn->srv_cookie = pool_alloc(capture)) == NULL) {
 					Alert("HTTP logging : out of memory.\n");
 				}
 
 				if (log_len > t->be->fiprm->capture_len)
 					log_len = t->be->fiprm->capture_len;
-				memcpy(t->logs.srv_cookie, p1, log_len);
-				t->logs.srv_cookie[log_len] = 0;
+				memcpy(txn->srv_cookie, p1, log_len);
+				txn->srv_cookie[log_len] = 0;
 			}
 
 			/* now check if we need to process it for persistence */
@@ -4862,7 +4862,7 @@
 		/* no need to go further */
 		msg.str = trash;
 		msg.len = sprintf(trash, HTTP_401_fmt, uri_auth->auth_realm);
-		t->logs.status = 401;
+		txn->status = 401;
 		client_retnclose(t, &msg);
 		if (!(t->flags & SN_ERR_MASK))
 			t->flags |= SN_ERR_PRXCOND;
diff --git a/src/session.c b/src/session.c
index 523a96a..3ea4b92 100644
--- a/src/session.c
+++ b/src/session.c
@@ -62,12 +62,12 @@
 		pool_free_to(s->fe->fiprm->req_cap_pool, txn->req.cap);
 	}
 
-	if (s->logs.uri)
-		pool_free(requri, s->logs.uri);
-	if (s->logs.cli_cookie)
-		pool_free(capture, s->logs.cli_cookie);
-	if (s->logs.srv_cookie)
-		pool_free(capture, s->logs.srv_cookie);
+	if (txn->uri)
+		pool_free(requri, txn->uri);
+	if (txn->cli_cookie)
+		pool_free(capture, txn->cli_cookie);
+	if (txn->srv_cookie)
+		pool_free(capture, txn->srv_cookie);
 
 	pool_free(session, s);
 }
