ihnokim / codepack

CodePack - A Python package to easily make, run, and manage workflows
MIT License
6 stars 0 forks source link

App의 검색 API가 Request body로 JSON을 받지 않도록 수정 #172

Closed ihnokim closed 1 year ago

ihnokim commented 1 year ago

What?

API server에서 검색 기능은 GET method로 구현되어 있는데, 이를 query string 또는 path value 방식으로 변경한다.

Why?

GET method에 JSON 형식의 request body를 포함하는 것은 지양해야 한다. HTTP spec (RFC2616, RFC2119)은 다음과 같이 설명한다.

... if the request method does not include defined semantics for an entity-body, then the message-body SHOULD be ignored when handling the request. The GET method means retrieve whatever information ([...]) is identified by the Request-URI.

2014년 이후에 나온 RFC7230-7237에서는 위 두 문구가 삭제되었다. 대신 다음과 같은 문구가 추가되었다.

Request message framing is independent of method semantics, even if the method doesn't define any use for a message body

따라서, 2014년 이후에는 GET method에서 request body를 사용하는 것이 큰 문제가 되지 않지만, 그래도 이전 spec을 존중하여 사용을 지양하는 것이 좋다. 왜냐하면, 다양한 환경에서 구현된 client에 따라 GET method일 경우 body를 보내는 것 자체를 허용하지 않거나, body가 포함되어 있다면 무시하는 경우도 있기 때문이다.

How?