'HTTP GET and analyze response for server header'

def _check_server_header(self, fuzzable_request):

    response = self._uri_opener.GET(fuzzable_request.get_url(), cache=True)
    (server, header_name) = response.get_headers().iget('server')
    if server:
        desc = 'The    server    header    for    the    remote    web    server    is:    "%s".'
        desc = (desc % server)
        i = Info('Server    header', desc, response.id, self.get_name())
        i['server'] = server
        i.add_to_highlight((header_name + ':'))
        om.out.information(i.get_desc())
        kb.kb.append(self, 'server', i)
        kb.kb.raw_write(self, 'server_string', server)
    else:
        desc = 'The    remote    HTTP    Server    omitted    the    "server"    header    in    its    response.'
        i = Info('Omitted    server    header', desc, response.id, self.get_name())
        om.out.information(i.get_desc())
        kb.kb.append(self, 'omitted_server_header', i)
        kb.kb.raw_write(self, 'server_string', '')
