web HTTP 메소드 GET, POST, OPTIONS
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를 사용한다
- GET 메소드만 허용하게 적어놓아도 Flask가 자동으로 HEAD와 OPTION 요청에 대한 응답을 구현해 준다
Comments