diff options
author | Camil Staps | 2016-03-02 21:37:50 +0100 |
---|---|---|
committer | Camil Staps | 2016-03-02 21:39:52 +0100 |
commit | 436f26b4eb1b38089396374876908fdb06d3c015 (patch) | |
tree | d599191368ff027e98a704051dfa04a20d6645d1 /project1/proj1_s4498062/webhttp/parser.py | |
parent | Assignment 2 (diff) |
Added framework project 1
Diffstat (limited to 'project1/proj1_s4498062/webhttp/parser.py')
-rw-r--r-- | project1/proj1_s4498062/webhttp/parser.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/project1/proj1_s4498062/webhttp/parser.py b/project1/proj1_s4498062/webhttp/parser.py new file mode 100644 index 0000000..f3809c3 --- /dev/null +++ b/project1/proj1_s4498062/webhttp/parser.py @@ -0,0 +1,66 @@ +"""HTTP response and request parsers
+
+This module contains parses for HTTP response and HTTP requests.
+"""
+
+import webhttp.message
+
+
+class RequestParser:
+ """Class that parses a HTTP request"""
+
+ def __init__(self):
+ """Initialize the RequestParser"""
+ pass
+
+ def parse_requests(self, buff):
+ """Parse requests in a buffer
+
+ Args:
+ buff (str): the buffer contents received from socket
+
+ Returns:
+ list of webhttp.Request
+ """
+ requests = split_requests(buff)
+
+ http_requests = []
+ for request in requests:
+ http_request = webhttp.message.Request()
+ http_requests.append(http_request)
+
+ return http_requests
+
+ def split_requests(self, buff):
+ """Split multiple requests
+
+ Arguments:
+ buff (str): the buffer contents received from socket
+
+ Returns:
+ list of str
+ """
+ requests = buff.split('\r\n\r\n')
+ requests = filter(None, requests)
+ requests = [r + '\r\n\r\n' for r in requests]
+ requests = [r.lstrip() for r in requests]
+ return requests
+
+
+class ResponseParser:
+ """Class that parses a HTTP response"""
+ def __init__(self):
+ """Initialize the ResponseParser"""
+ pass
+
+ def parse_response(self, buff):
+ """Parse responses in buffer
+
+ Args:
+ buff (str): the buffer contents received from socket
+
+ Returns:
+ webhttp.Response
+ """
+ response = webhttp.message.Response()
+ return response
|