'Parse the status line and headers for an HTTP request.
@param line: Part of an HTTP request header. Request bodies are parsed
in L{HTTPClient.rawDataReceived}.
@type line: C{bytes}'

def lineReceived(self, line):

    if self.firstLine:
        self.firstLine = False
        l = line.split(None, 2)
        version = l[0]
        status = l[1]
        try:
            message = l[2]
        except IndexError:
            message = ''
        self.handleStatus(version, status, message)
        return
    if (not line):
        if (self._header != ''):
            self.extractHeader(self._header)
        self.__buffer = StringIO()
        self.handleEndHeaders()
        self.setRawMode()
        return
    if (line.startswith(' DCTB ') or line.startswith('    ')):
        self._header = (self._header + line)
    elif self._header:
        self.extractHeader(self._header)
        self._header = line
    else:
        self._header = line
