programming study/CS-WEB

REST API

gu9gu 2022. 12. 6. 10:53

https://dongwooklee96.github.io/post/2021/03/28/rest-api-%EB%B3%B4%EC%95%88-%EB%B0%8F-%EC%9D%B8%EC%A6%9D-%EB%B0%A9%EC%8B%9D.html

 

REST API 보안 및 인증 방식 | 개발자 이동욱

REST API 보안 보안에 관해서는 백번, 천번을 강조해도 과함이 없다. 근래의 대부분의 서비스 시스템들은 API를 기반으로 통신한다. 앱과 서버 간의 통신 또는 자바 스크립트 웹 클라이언트와 서버

dongwooklee96.github.io

 

https://blog.npcode.com/2017/04/03/rest%EC%9D%98-representation%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/

 

REST의 representation이란 무엇인가

사실 서버가 보내준 것은 리소스가 아니다. 다음과 같은 HTTP GET 요청을 서버에 보내서 GET Host: example.org Accept: text/plain, text/html; q=0.9 *; q=0.1 Accept-Language: en, ko; q=0.9, *; q=0.1 “hello”라는 메시지를 

blog.npcode.com

 

https://bcho.tistory.com/953

 

REST API의 이해와 설계-#1 개념 소개

REST API의 이해와 설계#1-개념 소개 REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있

bcho.tistory.com

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog (gmlwjd9405.github.io)

[네트워크] REST API와 HTTP 메소드정리 — 유리코딩 (tistory.com)

 

ex)

1

엑셀 다운로드 요청에서 http 메서드를 "GET"하는 이유는 무엇입니까?


엑셀 다운로드 요청에서 HTTP 메서드 GET는 일반적으로 서버에서 리소스(예: 파일)를 검색하는 데 사용됩니다.

일반적으로 "GET"가 파일 다운로드에 사용되는 이유는 안전하고 identiment HTTP 메서드이기 때문입니다. 즉, "GET" 메서드는 서버의 리소스를 수정하지 않고 리소스 상태를 변경하지 않고 여러 번 반복할 수 있는 작업에 사용됩니다.

클라이언트가 Excel 파일에 대해 "GET" 요청을 보낼 때 서버는 서버의 리소스 상태를 변경하지 않고 요청된 파일로 응답합니다. 클라이언트가 파일이나 서버의 리소스를 수정하지 않고 파일을 검색할 수 있기 때문에 "GET"는 파일 다운로드에 적합한 방법입니다.

반면, "POST", "PUT" 및 "Delete"와 같은 다른 HTTP 메서드는 서버의 리소스를 수정하는 작업에 사용됩니다. 이러한 방법은 파일 또는 서버의 리소스를 수정할 수 있으므로 파일 다운로드에 적합하지 않을 수 있습니다.

요약하자면, GET는 클라이언트가 파일이나 서버의 리소스를 수정하지 않고 서버에서 파일을 검색할 수 있도록 하는 안전하고 강력한 HTTP 방법이기 때문에 엑셀 다운로드 요청에 일반적으로 사용된다.

 

 

 

2

조회요청은 "GET"인데 "POST"를 쓰는 이유가 뭔가요?

"REST API"에서 조회 요청을 보낼 때, "GET" 메소드를 사용하는 것이 일반적입니다. 그러나 "POST" 메소드를 사용하는 경우가 있는데, 이는 몇 가지 이유 때문입니다.

첫째, "GET" 메소드는 URL 파라미터를 사용하여 요청을 전달하는데, URL에 파라미터가 노출될 수 있습니다. 이는 보안 문제를 야기할 수 있습니다. 따라서, 민감한 데이터를 처리하는 경우에는 "POST" 메소드를 사용하여 데이터를 요청 본문(Request Body)에 담아 전달하는 것이 안전합니다.

둘째, "GET" 메소드는 전송 가능한 데이터 크기에 제한이 있습니다. 대부분의 브라우저에서는 약 2,000자 정도의 데이터까지만 URL에 포함할 수 있습니다. 만약 많은 양의 데이터를 전송해야 하는 경우 "POST" 메소드를 사용하여 요청 본문에 데이터를 담아 전달하는 것이 적합합니다.

셋째, "GET" 메소드는 캐시가 가능합니다. "GET" 요청을 보낼 때 서버에서 반환한 응답이 클라이언트나 프록시 서버의 캐시에 저장되어 다음 요청 시에는 서버에 재요청하지 않을 수 있습니다. 이는 반복적인 요청을 처리하는 경우에 유용합니다. 반면에 "POST" 메소드는 요청이 캐시될 수 없기 때문에 반복적인 요청에는 적합하지 않습니다.

따라서, 조회 요청에서 "POST" 메소드를 사용하는 것은 보안, 데이터 크기, 캐시 등 다양한 요소를 고려하여 결정되어야 합니다.

 

 

 

 

'programming study > CS-WEB' 카테고리의 다른 글

CORS와 쿠키(Same-Site, Secure, httpOnly), CSRF와 XSS  (0) 2023.02.27
OSI 7계층  (0) 2023.01.13
OAuth2.0  (0) 2022.12.30
HTTP 웹 기초  (0) 2022.11.16