Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

post로 처리해야하는 메소드인데 get으로 동작해도 무관한지 #33

Open
Tracked by #26
Dae-Hwa opened this issue Aug 6, 2021 · 5 comments
Open
Tracked by #26

Comments

@Dae-Hwa
Copy link
Collaborator

Dae-Hwa commented Aug 6, 2021

No description provided.

@Dae-Hwa
Copy link
Collaborator Author

Dae-Hwa commented Aug 9, 2021

@Dae-Hwa
Copy link
Collaborator Author

Dae-Hwa commented Aug 9, 2021

http spec에는 정해지지 않았다고 적혀있지만, 사용하지 않는 것이 기본적으로는 좋은 것 같다.

하지만, message body가 있는 것이 http spec이기 때문에 어떤 메소드든, 정의해놓은 것이 아니면 message body를 읽어올 수 있도록 구현은 돼야 한다.

하지만, 이번 케이스와 같은경우는 method를 실수한 경우다. 아마 get에 의도적으로 message body를 넣는 경우보다는 지금 같은 경우가 더 많을 것이라 생각된다.
해당 경우는 서버단에서 message body가 해당 method와 무관한 상태라는 것을 알려주는 식의 구현도 해볼 수 있을 것 같다.

만약 의도적으로 어쩔수 없이 넣은 경우라도 경고를 보여줄 수 있는 방향이면 좋을 것 같다.

@sanhee
Copy link
Owner

sanhee commented Aug 9, 2021

get이나 post나 구조상 message body가 기본적으로 존재하기 때문에, get method에서 body를 사용하는 것도 기능적으로 문제 없게 할 수는 있습니다.

하지만, HTTP 메서드의 의미는 GET은 리소스 취득, POST는 리소스 추가로 약속돼있고, 모두가 혼동없이 사용할 수 있는 API를 만들기 위해선 약속된 형태를 지켜주는게 좋다고 생각합니다.

따라서 post 요청을 get 요청을 혼합해서 사용하는 건 금지해야 한다는게 제 생각입니다.

@Dae-Hwa
Copy link
Collaborator Author

Dae-Hwa commented Dec 2, 2021

서블릿의 경우 body 대신 InputStream으로 저장해둠
일반적으로는 POST일 경우 읽어오는 식으로 처리되는 것으로 추정 -> 메세지 컨버터에서 사용할듯
RequestBody 어노테이션 있을 경우 JSON 메세지 컨버터로 읽어옴. Map으로 받아주면 GET에서도 읽어올 수 있음

@Dae-Hwa
Copy link
Collaborator Author

Dae-Hwa commented Dec 9, 2021

기본 구현은 안 되게 막고 서버 설정에 따라 바꿀 수 있도록 할 수도 있을 것 같음

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants