web HTTP 메소드 GET, POST, OPTIONS

1 minute read

HTTP 응답-요청 메시지 구조

HTTP 메소드란?

  • HTTP 통신 요청(request)이 이루어 질 때 어떠한 액션을 요청을 하는지 알려준다

  • HTTP 요청 메시지의 Start Line에 HTTP 메소드 정보가 포함된다

    GET /index HTTP/1.1
    

GET

  • 변경사항이 없는 간단한 데이터를 서버로 요청해서 받아올 때 사용한다

    • 캐싱 : 한 번 접근 후, 또 요청할 때 빠르게 접근하기 위해 데이터를 저장해놓음
    • 이 때문에 POST 방식보다 속도가 쬐끔 빠르다
  • HTTP 요청의 body부분과 Content-Type은 비워져 있다

  • 데이터를 URL뒤에 붙여서 보내기 때문에 URL에 전송하는 데이터가 노출된다

    www.example.com?name=ychaen
    
    • ? : URL의 끝을 알리고, 데이터 표현을 시작함을 알려준다

POST

  • 데이터 생성/수정/삭제/전송을 할 때 주로 사용된다
  • HTTP 요청의 body 부분에 데이터를 넣어서 보낼 수 있다
    • Content-Type에 데이터 타입을 명시해야 한다
    • 데이터 타입을 별도로 작성하지 않을 경우 자동으로 application/x-www-form-urlencoded로 세팅됨
    • multipart/form-data : 파일 전송시 많이 쓰임 / 바이너리 데이터
  • URL주소에 넣는 것이 아니기 때문에 GET 보다 많은 데이터를 다룰 수 있다

OPTIONS

  • 특정 엔드포인트가 어떤 메소드를 허용하는지 알고자 할 때 사용한다
    • 구현할 때 GET POST 어떤 요청을 받을 것인지 정할 수 있다
    • 만약 GET 메소드 요청만 받게 되어있는 엔드포인트에 POST 요청을 보낼 경우, 405 Method Not Allowed 코드가 전송된다 (에러!)
    • 이러한 상황을 예방하기 위해 OPTIONS를 사용한다

OPTIONS

  • GET 메소드만 허용하게 적어놓아도 Flask가 자동으로 HEAD와 OPTION 요청에 대한 응답을 구현해 준다

더보기

Categories:

Updated:

Comments