code: def _do_POSTGET(self, handler):
          
          # at first, assume that the given path is the actual path and there are
          # no arguments
          self.server._dbg(self.path)
  
          self.path, self.args = _parse_url(self.path)
  
          # Extract POST data, if any. Clumsy syntax due to Python 2 and
          # 2to3's lack of a byte literal.
          self.data = u"".encode()
          length = self.headers.get('Content-Length')
          if length and length.isdigit():
              self.data = self.rfile.read(int(length))
  
          # POST data gets automatically decoded into Unicode. The bytestring
          # will still be available in the bdata attribute.
          self.bdata = self.data
          try:
              self.data = self.data.decode('utf8')
          except UnicodeDecodeError:
              self.data = None
  
          # Run the handler.
          try:
              handler()
          except:
              self.send_response(500)
              self.end_headers()
              self.wfile.write(format_exc().encode('utf8'))
docs: handle an HTTP request