본문 바로가기

CS/네트워크

GET과 POST

HTTP 프로토콜의 종류이다.

GET 메서드

  • 정보를 조회하기 위한 메서드
  • 가져와서 보여준다(select)
  • url 끝에 ?가 붙고, 정보가 key=value 형태의 쌍을 이루어 서버로 전송된다.
  • 요청정보가 여러개일 경우 &로 구분한다.
  • ex) www.aa.com?name=value
  • url에 요청 정보가 붙기 때문에 길이 제한이 있다.→대용량 데이터 전송 불가능
  • url에 정보가 담겨 전송되기 때문에 보안에 취약하다.
  • body는 비어 있는 상태로 전송된다.→body의 데이터 타입 표현하는 Content-Type도 비어 있는 상태
  • post 방식보다 빠르다.
  • 캐싱 사용이 가능하다.

POST 메서드

  • 서버의 값이나 상태 바꾸기 위한 메서드
  • 요청을 수행한다(Insert, Update, Delete)
  • 요청 정보를 HTTP 패킷의 body 안에 숨겨서 서버로 전송한다.
  • 즉, Content-Type에 데이터 타입이 표현된다.
  • 대용량 전송이 가능하다.
  • 클라이언트에서 정보를 인코딩하고, 서버에서 디코딩한다.
  • 따라서 보안상 안전하다.

조회하기 위한 용도로 POST가 아닌 GET 방식을 사용하는 이유?

1) GET은 멱등성이 있다. 즉, 여러 번 요청해도 항상 동일한 결과를 반환한다.

따라서 여러 번 조회 요청을 해도 서버의 값이 바뀌지 않아야 한다. GET 방식이 적절하다.

2) 웹에서 모든 리소스는 Link할 수 있는 url을 가지고 있어야 한다.

다른 사람에게 웹페이지 주소를 넘겨줄 때 POST 방식을 사용한다면 요청 정보가 body에 있기 때문에 url만으로는 해당 사이트로 이동할 수 없다.

 

'CS > 네트워크' 카테고리의 다른 글

Authentification과 Authorization의 차이  (0) 2021.05.25
HTTP 헤더  (0) 2021.05.25
TCP의 3 way handshake와 4 way handshake  (0) 2021.05.17
TCP/UDP의 Header  (0) 2021.05.17
TCP와 UDP  (0) 2021.05.15