일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JAVA #객체지향언어 #절차지향언어 #코딩 #Python #C #C++ #객체지향 #절차지향
- 프로그래머스 #자바 #java #코딩테스트 #연속된 수의 합 #코딩
- 프로그래머스 #JAVA #코딩테스트 #다음에 올 숫자 #코딩
- Today
- Total
Javadocs
GET vs POST 본문
### 알고 있던 개념과 정확하게 알지 못한 부분에 대해서 정리하고,
좋은 기회로 많은 피드백과 조언을 얻고 다시 한번 정리하게 되었습니다!! ###
0. HTTP Method
클라이언트는 인터넷 브라우저 주소창에 URL을 입력하고 서버는 클라이언트의 요청에 응답하여 웹페이지를 보여주게 됩니다. 즉, HTTP Method란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 말합니다.
이 때 클라이언트가 서버로 보내는 데이터를 HTTP 패킷이라 하며, HTTP 패킷은 크게 Header(헤더)와 Body(바디)로 나눠진다.
Header(헤더)에는 HTTP Method방식, 클라이언트와 브라우저, 접속하고자 하는 URL정보 등이 담겨있고,
Body(바디)는 보통 비어있으며 정보를 담아서 서버에 요청할 수 있다.
# 주요 메소드
- GET : 리소스 조회 - CRUD 기능에서 : R-Read(조회)
- POST : 요청 데이터를 처리, 주로 등록에 사용 - CRUD 기능에서 : C-Create(생성)
- PUT : 리소스를 대체(덮어쓰기)하고, 해당 리소스가 없으면 생성 - CRUD 기능에서 : U-Update(갱신)
- PATCH : 리소스 부분 변경 - CRUD 기능에서 : U-Update(갱신)
- DELETE : 리소스 삭제 - CRUD 기능에서 : D-Delete(삭제)
1. HTTP 메서드 - GET
GET 방식은 주로 서버에 데이터를 조회할 때(리소스를 조회) 사용합니다.
URL을 통해 모든 파라미터를 전달하기 때문에 주소창에 전달 값이 노출되고, *URL의 길이가 제한이 있기 때문에 전송 데이터의 양이 한정되어 있습니다. 그렇기 때문에 게시판의 게시물, 목록 조회와 같은 간단한 데이터 요청할 때 적합하다. 그리고 URL에 파라미터가 노출되기 때문에 GET방식은 중요한 정보를 다루면 안됩니다.(보안상의 문제)
* GET 요청의 길이 제한은 표준이 따로 있는 것은 아니고 브라우저마다 제한이 다르다.
GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 "쿼리스트링" 이라고 부른다.
방식은 URL 끝에 "?"를 붙이고 변수명1=값1&변수명2=값2... 형식으로 이어 붙이면 된다.
www.example.com/show?key1=value1&key2=value2
2. HTTP 메서드 - POST
POST 방식은 주로 서버에 데이터(리소스)를 추가, 생성할 때 사용합니다.
GET과 다르게 POST 방식의 요청은 HTTP Body에 데이터(리소스)를 포함해서 전달하고, URL에 직접적으로 파라미터가 노출되지 않고 길이 제한도 없습니다. GET에서 URL의 파라미터로 보냈던 key1=value1&key2=value2 가 Body에 담겨 보내진다고 생각하면 된다. 게시판에 게시글을 작성하는 작업 등을 할 때 사용할 수 있다.
* GET보다는 보안성이 좋지만, 데이터를 암호화하지 않으면 Body의 데이터도 결국 볼 수 있는건 똑같다.
3. 차이점
가장 중요한 멱등성(idempotent)의 차이!!
- GET 방식의 요청은 멱등성이 보장된다.
- POST 방식의 요청은 멱등성이 보장되지 않는다.
# 멱등성이란??
[ 사전적 의미 ]
수학이나 전산학에서 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미합니다.
동일한 요청을 1번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 가지고, 서버의 상태도 동일하게 남을 때 해당 HTTP Method가 멱등성을 가진다고 합니다.
정리하면 서버의 상태가 멱등성이 보장되는 경우 같은 행위를 여러 번 반복하더라도 같은 효과를 가져야 한다는 것.
멱등성이 보장되지 않으면, 같은 행위를 여러 번 반복하는 경우 요청마다 다른 효과가 발생된다고 생각하면 된다.
'SelfStudy > CS 기술 정리' 카테고리의 다른 글
#8. Rest API란? (0) | 2023.03.26 |
---|---|
#7. @Controller 와 @RestController 차이 (0) | 2023.03.25 |
#5. WEB과 WAS의 차이 (0) | 2023.03.19 |
#3. MVC 패턴이란? (Model-View-Controller) (0) | 2023.03.18 |