HTTP 패킷
- 클라이언트가 서버로 요청을 했을때, 보내는 데이터
- HTTP패킷의 구조는 크게 헤더와 바디로 나뉘어짐
GET vs POST
웹에서 데이터를 서버에 보내거나 서버로부터 데이터를 받아오는 데
사용되는 HTTP 프로토콜의 두 가지 주요한 방식
GET 방식
- 데이터 전송 : URL의 파라미터에 데이터를 포함하여 서버에 요청을 보냄
- 보안 : URL에 데이터가 노출되므로 민감한 정보를 전송하는 데 적합하지 않음
- 캐시 : 동일한 요청을 반복할 경우 브라우저가 응답을 캐시하여 빠르게 제공 가능
- 사용 : 데이터 검색, 조회 등과 같이 서버에서 정보를 가져오는 데 주로 사용
- HTTP패킷의 헤더에 포함되여 서버에 요청
- Body에 특별한 내용을 넣을 것이 없으므로 Body가 빈상태로 보내짐
- 리소스 요청
POST 방식
- 데이터 전송 : HTTP 요청의 Body에 데이터를 담아 전송
- 보안 : 민감한 정보를 전송할 때에도 안전하게 데이터를 전송 가능
- 데이터 크기 : GET 방식보다 큰 데이터를 전송할 수 있음
- 사용 : 로그인 정보, 결제 정보 등과 같이 보안적으로 민감한 정보를 전송하는 데 주로 사용
- BODY를 통해 서버로 요청 데이터 전달
- 리소스 생성
차이점
- GET은 URL에 데이터를 포함하여 전송하고, POST는 HTTP 요청의 Body에 데이터를 담아 전송
- GET은 URL에 노출되어 보안에 취약하지만, POST는 안전하게 데이터를 전송
- GET은 주로 데이터 조회에, POST는 데이터 생성 및 업데이트에 사용
- GET은 캐시 가능성이 있어 반복 요청 시 빠른 응답이 가능하지만, POST는 그렇지 않음
멱등
- 동일한 연산을 여러 번 수행해도 동일한 결과가 나타나야 한다는 것
- GET : 서버에 동일한 요청을 여러 번 전송해도, 동일한 응답이 돌아옴
- POST : 서버에 동일한 요청을 여러 번 전송해도 각기 다른 응답을 받을 수 있음
결론
- 설계 원칙에 따라서 적절하게 사용되어야 함
- 어떤 방식이든 보안은 항상 중요
