Beispiel #1
0
class NormalController(BaseController):

    def __init__(self):
        pass

    #GETメソッドを受け取った時
    def do_get(self, request) -> Response:
        super().do_get(request)

        # make responce object so determine states code
        #指定されたuriのファイルが存在するか確認
        if not self.path:
            self.path = "index.html"
            self.ext = "html"

        target_file_path = os.path.join(main.DOCUMENT_ROOT, self.path)
        print(target_file_path)
        if os.path.exists(target_file_path) and os.path.isfile(target_file_path):
            self.response = Response(main.protocolVersion, States.OK)
            self.response.body = self.open_files(target_file_path, self.ext)

        #ファイルが見つからない時、not_found.htmlを送信
        else:
            self.response = self.not_found()
            
        self.response.add_header("Content-Type", content_type.get_content_text(self.ext))

        return self.response
Beispiel #2
0
 def respond(self):
     '''Respond to a HTTP request'''
     body = b"<html><body>Response</body></html>\r\n"
     resp = Response(self.parser.version)
     resp.add_header(b"Server", b"lath" + b"/" + self.lath_version)
     resp.add_header(b"Date", datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT").encode())
     self.cli_sock.send(resp.gen(body))
     print("responded.")
     self.responded = True
 def handle_get(self, request):
     """GET request handler. Returns file to client
     :type request: Request
     """
     logging.info(f'Processing GET request {request.path}')
     path_to_file = self.__get_abs_path(request.path)
     file_descriptor = self.__file_cache.get_fd(path_to_file)
     if file_descriptor and path_to_file.is_file():
         response = Response(code=200)
         response.add_header("Content-Length",
                             str(path.getsize(path_to_file)))
         file_type, charset = self.__mime.guess_type(path_to_file.as_uri())
         response.add_header("Content-Type", file_type)
         return self.__send_file_response(
             response=response, file_descriptor=file_descriptor), response
     else:
         bad_req_response = Response(code=404)
         return self.__send_general_response(
             bad_req_response), bad_req_response