GET 방식과 POST 방식의 공통점
클라이언트에서 서버로 요청(데이터 조회/저장)할 때 사용하는 HTTP 메소드이다.
GET 방식
주로 리소스 조회할 때 사용하는 방식
서버에 전달하고 싶은 데이터는 쿼리(파라미터/스트링)를 통해서 전달한다.
메시지 바디를 사용해 데이터 전달이 가능하나 지원하는 곳이 많지 않아서 권장되지 않는다.
URL 주소 끝에 파라미터처럼 붙이는 것을 쿼리 스트링이라고 한다.
지금 글을 작성할 때 호출된 URL도 GET 방식의 쿼리 스트링 예시이다.이다.
https://layton0-0.tistory.com/manage/newpost/?type=post&returnURL=어쩌구
위의 예시를 서버에서 받을 때는 String type, String returnURL 의 명칭으로 받을 수 있겠다.
GET 특징
- GET 요청은 캐시가 가능하다
- JS, CSS, 이미지 등 정적 컨텐츠는 데이터 양이 크고 변경될 일이 적어 반복되는 동일한 요청이 비효율적
- 정적 컨텐츠는 요청된 후 브라우저에서 요청을 캐시, 동일한 요청 발생 시 서버로 요청을 보내지 않고 캐시 데이터 사용
- cache-control로 시간 설정을 할 수 있어 이 시간이 지나면 자동으로 캐시를 새로 받는다
- GET 요청은 브라우저 히스토리에 남는다.
- 북마크 될 수 있다.
- 표준은 없으나 브라우저마다 길이 제한이 있다.
- 보안상 중요한 정보는 다루면 안된다. -> 파라미터에 값이 다 노출되기 때문
POST 방식
주로 요청 데이터를 처리할 때 사용하는 방식
메시지 바디(application/json)를 통해 서버로 요청 데이터를 전달한다.
서버는 요청 데이터를 처리하는 모든 기능을 수행한다.
POST 특징
- 데이터 길이에 제한이 없어 용량이 큰 데이터도 보낼 수 있다
- 데이터가 외부로 드러나지 않아 보안이 필요한 부분에 많이 사용됨
- 데이터를 암호화하지 않으면 body의 데이터도 조회 가능하다.
GET 과 POST 의 차이점
- 사용목적
- GET은 데이터를 조회, POST는 생성/수정/삭제 등 updatable하다.
- 요청에 body 유무
- GET은 쿼리 스트링을 이용해 데이터를 파라미터로 전송
- POST는 body에 데이터를 담아 전송
- 멱등성
- 멱등성이란 연산을 여러번 적용해도 결과가 달라지지 않는 성질이다.
- GET 요청은 멱등성을 가진다.
- 데이터를 update 하지 않고 select만 하기 때문에 여러번 요청해도 같은 응답을 반환할 것이다.
- POST 요청은 멱등성을 가지지 않는다.
- 생성/수정/삭제는 모두 데이터를 update한다. 따라서 매번 다른 응답을 반환할 가능성이 있다.
'Computer Science > Network' 카테고리의 다른 글
[Network] TCP & UDP 차이 / 3-way handshaking & 4-way handshaking (0) | 2023.07.18 |
---|---|
www.google.com 이 뜨는 과정 (0) | 2023.07.11 |
UDP 헤더 (0) | 2022.08.09 |
컴퓨터 네트워크 2강 정리 (0) | 2022.08.02 |
컴퓨터 네트워크 1강 정리 (0) | 2022.08.02 |