Network/HTTP

GET & POST

busy맨 2024. 6. 27. 18:12

1. GET

1) GET

  • 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메소드
  • GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송
    • URL 끝에 ?를 사용하여 쿼리 스트링을 이어 붙임
    • Ex)
      www.example.com/show?name1=value1&name2=value2
    • 서버에서는 name1과 name2라는 파라미터 명으로 각각 value1과 value2를 전달 받음

 

2) GET의 특징

  1. 캐시가 가능
    • GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 리소스의 복사본을 반환
  2. 브라우저 히스토리에 남음
    • 브라우저 히스토리
      • 방문한 웹페이지 기록
  3. 북마크 가능
    • 북마크
      • 특정 웹 주소를 쉽게 찾아갈 수 있도록, 주소를 목록 형태로 저장해둔 것
  4. 길이 제한
    • 브라우저마다 제한이 다름
  5. 보안 문제
    • GET 요청은 파라미터에 다 노출되기 때문에 보안 문제 발생가능하여 중요한 정보를 다루면 안됨
  6. 데이터를 요청할 때만 사용

 

2. POST

1) POST

  • 클라이언트에서 서버로 리소스를 생성하거나 업데이트 하기 위해 데이터를 보낼 때 사용하는 메소드
  • HTTP 메세지 Body에 데이터를 담아 서버로 전송
  • 길이 제한이 없어 용량이 큰 데이터를 보낼 때 사용
  • GET처럼 데이터가 외부적으로 드러나지 않아 보안이 필요한 부분에 사용
    • 데이터를 암호화하지 않으면 body의 데이터도 볼 수는 있다

 

2) POST 특징

  • 캐시 X
  • 브라우저 히스토리에 기록 X
  • 북마크 X
  • 데이터 길이 제한 X

 

3. GET과 POST 차이점

  1. 사용목적
    • GET은 서버의 리소스에서 데이터를 요청할 때 사용
    • POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용
  2. 요청에 Body 유무
    • GET은 데이터를 URL 파라미터에 담아 보냄
    • POST는 데이터를 HTTP Body에 담아 보냄
  3. 멱등성(idempotent)
    • GET은 리소스를 조회하기 때문에 멱등
    • POST는 리소스를 새로 생성하거나 업데이트하기 때문에 멱등이 아님
      • POST 요청이 발생하면 서버가 변경될 수 있음

+) 멱등

  • 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질

'Network > HTTP' 카테고리의 다른 글

HTTP  (0) 2024.06.27