diff options
Diffstat (limited to 'project1/proj1_s4498062/webhttp/parser.py')
-rw-r--r-- | project1/proj1_s4498062/webhttp/parser.py | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/project1/proj1_s4498062/webhttp/parser.py b/project1/proj1_s4498062/webhttp/parser.py index 7dbb3b5..35f01e8 100644 --- a/project1/proj1_s4498062/webhttp/parser.py +++ b/project1/proj1_s4498062/webhttp/parser.py @@ -1,62 +1,62 @@ -"""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"""
- self.buff = ''
-
- def parse_requests(self, buff):
- """Parse requests in a buffer
-
- Args:
- buff (str): the buffer contents received from socket
-
- Returns:
- list of webhttp.Request
- """
- self.buff += buff
- requests = self.get_requests()
-
- for request in requests:
- http_request = webhttp.message.Request()
- http_request.parse(request)
- yield http_request
-
- def get_requests(self):
- """Split multiple requests from buffer
-
- Returns:
- list of str
- """
- requests = self.buff.split('\r\n\r\n')
- self.buff = requests[-1]
- for req in requests[:-1]:
- yield req.lstrip() + '\r\n\r\n'
-
-
-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()
- response.parse(buff)
- return response
+"""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""" + self.buff = '' + + def parse_requests(self, buff): + """Parse requests in a buffer + + Args: + buff (str): the buffer contents received from socket + + Returns: + list of webhttp.Request + """ + self.buff += buff + requests = self.get_requests() + + for request in requests: + http_request = webhttp.message.Request() + http_request.parse(request) + yield http_request + + def get_requests(self): + """Split multiple requests from buffer + + Returns: + list of str + """ + requests = self.buff.split('\r\n\r\n') + self.buff = requests[-1] + for req in requests[:-1]: + yield req.lstrip() + '\r\n\r\n' + + +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() + response.parse(buff) + return response |