REST API에 대한 질문입니다!

조회수 1898회

안녕하세요~!~ REST API에 대해서 공부중이다가 궁금한 점이 생겨서 질문드려보아욥!

REST API가 잘 설계되고 구현되어있는 서비스에서

www.example.com/members/1 이라고 웹브라우저의 주소창에 입력하고 엔터를 누르면 이것은 무조건 GET 메소드 인가요?

이게 처음에 궁금해진 이유는 REST API는 stateless 라고 하고 서버에서는 클라이언트의 상태정보를 저장하지 않는다(세션을 사용하지 않는다)라고 하더라구요.. 그럼 유저의 분류에 따른 권한은 어떻게 체크하는지가 궁금해져서 저러한 질문까지 도달하게 되었네요...

REST API는

GET /members/1

POST /members/1

PUT /members/1

DELETE /members/1

위 처럼 조회/입력/수정/삭제 등의 작업을 동일한 URL(메소드에 따른 분류)에서 처리가능 한 것인데 만약 서버에서 클라이언트의 상태(권한 등)를 체크하지 않고, 웹브라우저 주소창에서 메소드를 입력하여 보낼 수 있다면 문제가 되지 않을까 라는 생각이 드네요!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 웹브라우저 창에서 www.example.com/members/1 를 입력하면 기본 값인 GET 으로 요청을 합니다.

    다른 요청의 경우 html form 태그를 이용하거나 http 관련 라이브러리를 사용하는 등 방법은 많습니다.

    REST API 의 특징은 별도의 작업이 필요없이 들어온 요청에 대해 응답만 해주면 됩니다. 클라이언트의 컨텍스트(사용자 정보 등)를 서버에서까지 유지할 필요가 없어서 비지니스로직에 집중하기 편하죠. 클라이언트의 권한체크는 일반적으로 인증서버에서 처리합니다.

    예를 들어 A업체 REST API 를 이용할 경우에

    1. A업체 에서 REST API KEY 를 발급 받습니다.

    2. 클라이언트는 A업체 인증서버에 REST API KEY 로 요청하여 ACCESS TOKEN 을 발급 받습니다.

    3. 클라이언트는 ACCESS TOKEN 을 이용하여 REST API 서버에서 해당 리소스를 얻어옵니다.

    OAuth 참고 자료

    보안 및 인증 참고자료

    • 답변 감사드려요! 추가적으로 질문이 있는데 그전에 제가 프로그래밍쪽이 전공이 아닌점 양해 부탁드리니다 ㅠ 그래서 이쪽 관련한 개발을 해본적이 없고 지식이 많이 없어서 용어들에 대한 개념공부를 위주로 하는 중입니다.ㅠ 일단 예로 들어주신 것은 OAuth라는 서비스를 사용할 때 사용하는 방법인거 같네요!(맞는지는 모르겠지만...) 답변에서 인증서버나 자체적으로 처리한다고 하셨는데 자체적으로 처리하는 것은 어떻게 처리하는 것인가요? REST API로 잘 구현된 다른 서비스의 기능을 이용하는 것이 아닌 제가 만들려는 서비스를 REST API에 맞춰서 만들려면 사용자 인증을 어떻게 하는 것인가요? 알 수 없는 사용자 2016.11.18 18:09
    • 자체적이란 말은 수정해야겠네요. 클라이언트에서 서버에 요청시 메시지에 약속된 값을 고정시켜 인증받는 경우를 말한 것 입니다. 답변에 인증 관련된 글하나 추가하겠습니다. 질문하신부분에 도움되었으면 좋겠네요. 저도 지식이 깊지않아 다른분들 글로 떼우네요ㅜ 김선우 2016.11.19 14:57
    • 오.. 좋은 출처 감사드려요!! 저도 약간 검색해보긴 했는데 발견하지 못했었는데.... 감사합니다!! 알 수 없는 사용자 2016.11.21 12:45

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)