티스토리 뷰
GET 방식과 POST 방식의 차이점?
GET방식
GET 방식은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용한다.
어떤값이나 내용, 상태등을 바꾸지 않는 경우이다.
즉, 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메소드이다.
GET 방식은 데이터를 읽거나, 검색할 때 사용된다.
POST 방식
서버상의 데이터 값이나 상태를 바꾸기 위해서 사용된다.
리소스를 생성/업데이트 하기 위해 서버에 데이터를 보내는데 사용된다.
HTTP 의 Body에 담아서 전송한다. Body는 길이 제한 없이 데이터를 전송할 수 있다.
POST 요청은 캐시가 되지 않으며, 브라우저 기록에 남지 않고, 북마크에 추가할 수 없다.
POST 요청에 대한 자원생성은 201(Created) HTTP 응답 코드로 반환한다.
- 생성요청시 POST 메소드를 사용한다.
- 수정요청시 PUT 또는 PATCH 메소드를 사용한다.
- 삭제요청시 DELETE 메소드를 사용한다.
[참고]
Query String vs Param vs Body
param, query, body 는 Request 객체가 API를 컨트롤 할 수 있도록하는 메소드이다.
Query String (request.query)
- Query Parameter
- 특정값을 필터링을 한다.
- 정렬이나 필터링을 해야하는 상황일 때 쓰인다.
GET방식으로 요청할 때, URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링이라고 부른다.
예) https://www.google.com/search?q=docker&oq=docker&aqs=chrome.0.69i59l2j69i61l3j69i60l3.975j0j1&sourceid=chrome&ie=UTF-8
? 이후에 url에 변수와 값이 드러나있다.
&를 연결하여 여러개의 데이터를 담아서 필터링을 할 수 있다.
Param (request.param)
- Path Variable
- 리소스를 식별해야하는 상황일 때 쓰인다.
- 예를 들면 [GET] /post/:pid 으로 설정하고, 요청할 때는 /post/123 으로 하면
- 파라미터 pid에 값 123이 저장된다.
Body (request.body)
- XML, JSON, Multi Form 에 데이터를 담는다.
- url 주소로 확인이 어렵다. (그치만 개발자도구에서 요청내용을 확인할 수 있다.)
- 민감한 데이터의 경우 반드시 암호화해서 전송해야한다.
- 직렬화된 이진데이터와 같이 사람이 읽을 수 없는 경우.
- url 길이 제한이 있어서, 요청할 때 변수가 많거나, 변수에 대응되는 값이 너무 길때 사용된다.
[참고]
REST와 RESTful API
REST (Representational State Transfer) 은
자원을 이름으로 구분하여 자원의 상태나 자원의 정보를 주고받는 것을 의미한다.
자원의 표현에 의한 상태 전달 이다.
- 자원: 자원은 소프트웨어가 관리하는 모든 것이기도하다. (문서, 그림, 데이터, 파일, 소프트웨어 자체 등)
- 자원의 표현: 자원을 명시하기 위한 이름
- 상태(정보)전달: 데이터가 요청되어지는 시점에서 자원의 상태(정
REST 가 왜 필요할까?
- 애플리케이션 분리/통합
- 다양한 클라이언트의 등장
- 서버프로그램은 다양한 브라우저와 모바일 환경에서도 통신을 할 수 있어야하며, 멀티플랫폼에 대한 지원을 위해 서비스 자원할 수 있어야한다.
REST의 구성요소
- 자원: URI
- 모든 자원에는 고유한 ID가 존재하고, 서버에 자원이 존재한다.
- HTTP URI 는 자원의 고유한 아이디를 의미한다면
- HTTP URL은 자원의 위치를 표기한 것이다.
- 클라이언트는 URI를 이용하여 자원을 지정하고, 해당 자원의 상태(정보)에 대한 조작을 서버에 요청한다.
- 행위: HTTP Method
- HTTP 프로토콜은 GET/POST/PUT/PATCH/DELETE 와 같은 메소들르 사용한다.
- 표현
- 클라이언트가 자원의 상태(정보)에 대한 조작을 요청하면, 서버는 이에 대한 응답을 보낸다.
- REST에서 하나의 자원은 JSON, XML 등 여러형태로 나타내며, 이 표현으로 데이터를 주고받는다.
REST API
- REST 기반으로 서비스 API를 구현한 것.
- 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 한다.
- HTTP 표준을 기반으로 구현하므로 HTTP를 지원하는 프로그램 언어로 클라이언트와 서버를 구현할 수 있다.
[참고]
'Backend > 꾸준히 TIL' 카테고리의 다른 글
[디자인패턴] 싱글톤 패턴 (0) | 2023.04.07 |
---|---|
[DB/MySQL] collate 예약어 (0) | 2023.04.05 |
[IT 개념] CI와 CD 의미 (1) | 2023.03.13 |
[Nestjs/AWS SES ] AWS SES 로 메일 전송하기 (0) | 2023.02.11 |
[jekyll/ruby] `require': cannot load such file -- webrick (LoadError) 에러 해결 (0) | 2023.02.08 |
- Total
- Today
- Yesterday
- OS
- MongoDB
- git
- 바이트디그리
- Jekyll
- 미완
- TypeScript
- typeORM
- RDBMS
- MySQL
- nestjs
- gem
- 개발용어
- node.js
- 한달어스
- vscode
- Mongoose
- TDD
- IT용어
- 스마트폰중독
- 나도 할 수 있다
- nestjs jest
- 클린아키텍쳐
- jest
- 습관개선
- 디지털디톡스
- 한달독서
- Nest.js
- 갓생살자
- 참고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |