본문 바로가기
Computer Science/NetWork

GET과 POST 비교

by 추천캐릭터 2022. 10. 30.
728x90

 어떤 웹으로 이동하기 위해 URL을 브라우저 주소창에 입력후 이동하게 됩나다. 단순히 URL을 입력 했을 뿐이지만 서버에서는 클라이언트의 요청에 응답하기위해 처리 해야 한다. 클라이언트가 서버로 요청 보내는 방법인 HTTP Method는 크게 2가지 방식(GET, POST)이 있다.

 

● GET 방식

- 필요한 정보를 얻기 위해 도서관에서 책을 빌려 오는 상황과 유사하게 GET은 어떠한 정보를 가저와 조회하기 위해 사용되는 방식이다.

 특징

  • URL에 변수(데이터)를 포함시켜 요청한다.
  • 데이터를 Header(헤더)에 포함하여 전송한다.
  • URL에 데이터가 노출되어 보안에 취약하다.
  • 캐싱할 수 있다.

 간단한 데이터를 URL에 넣도록 설계된 방식으로 데이터를 보내는 양에 한계가 있다. HTTP자체는 GET 방식의 URL길이에 제약이 없지만, 브라우저는 길이 제한이 있어 URL형식에 맞지 않는 파라미터 이름이나 값은 인코딩되어 전달해야 하다. (ex. 보내는 길이가 길 경우 초과데이터는 절단된다.) 특별히 전송하는 데이터가 없으므로 GET방식에서 바디는 보통 빈 상태로 전송되며, 헤더의 내용 중 Body의 데이터를 설명하는 Content-Type 헤더 필드도 들어가지 않는다.

https://toyeka-kor.tistory.com/login?id=toyeka&pw=kor 같은 페이지가 있다고 가정하면 GET방식은 표식을 통해 URL끝을 알리고, id라는 키에 대해선 toyeka라는 값을, pw라는 키에 대해선 kor라는 값을 전송한다는 것을 알수있다. 실제 웹사이트에선 ID, PW 같은 매우 중요한 정보는 개인정보가 노출되는 상황이 발생한다. 이같은 경우 캐싱을 하여 속도를 높이거나 즐겨찾기를 편리하기 위해 사용되는 경우가 많다. 


캐싱(Cashing)이란?

 캐싱이란 한번 접근 후, 재 요청시 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓은 것이다.


POST 방식

- 데이터를 서버로 제출하여 추가 또는 수정하기 위해 사용하는 방식이다.

 특징

  • URL에 변수(데이터)를 노출하지 않고 요청한다.
  • 데이터를 Body에 포함시킨다.
  • URL에 데이터가 노출되지 않아서 기본 보안은 되어있다.
  • 캐싱이 불가능하다.

  Body에 데이터를 넣어 전송함으로 헤더필드 중 Content-Type이라는 헤더가 들어가야되고 데이터 타입을 명시해 줘야 한다. 데이터를 Body에 포함 시키는 점 때문에 길이의 제한은 없지만 최대 요청을 받는 시간인 Time Out이 존재함으로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재한다. URL에 데이터가 노출 되지 않으므로 즐겨찾기나 캐싱이 불가능하지만 쿼리 스트링(문자열) 데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능하다.

GET과 POST 비교표

https://mangkyu.tistory.com/17

 

[Web] GET과 POST의 비교 및 차이

사용자가 어떤 홈페이지로 이동하기 위해서 URL을 브라우저 주소창에 작성하고 엔터를 누르면 원하는 페이지로 이동합니다. 사용자는 단순히 URL(Uniform Resource Locator)을 입력하였을 뿐이지만 서버

mangkyu.tistory.com

 

728x90

'Computer Science > NetWork' 카테고리의 다른 글

Forward와 Rdeirect 차이  (0) 2022.11.04
상태유지(Stateful) vs 무상태(Stateless)  (0) 2022.10.30
URI, URL 이게 뭐지?  (0) 2022.10.29
웹 서버와 WAS  (0) 2022.10.27
OSI 7 Layer  (0) 2022.10.27

댓글