본문 바로가기
기타

TIL - 22.02.18

by DGK 2022. 2. 18.

 

개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

2월 18일(금)

 

HTTP method


GET

 

  1. HTTP GET method는 서버로부터 정보를 조회하기 위해 설계된 메소드이다.
  2. GET method는 요청을 전송할 때 필요한 데이터를 body에 담지 않고, 쿼리스트링을 통해 전송한다.
  3. 쿼리스트링은 URL 끝에서 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 말한다. (만약 요청 파라미터가 여러개이면 &로 연결함)
  4. 예를 들면, www.unpasoadelante.tistory.com/resources?name1=value&name2=value 의 쿼리스트링을 포함한 URL에서 요청 파라미터명은 name1과 name2이고, 각각의 파리미터값은 value1과 value2가 된다. 
  5. GET method는 불필요한 요청을 제한하기위해 요청이 캐시될 수 있다. (js, css, 이미지 같은 정적 컨텐츠는 데이터양이 크고 변경될 일이 적어서 반복해서 동일한 요청을 보낼 필요가 없음)

 

 

POST

 

  1. HTTP POST method는 리소스를 생성 및 변경하기 위해 설계된 메소드이다.
  2. 그렇기 때문에 GET method와 달리 POST method는 전송해야될 데이터를 HTTP request의 body에 담아 전송한다.
  3. 또한, HTTP 요청으로 보내는 body 길이는 제한이 없기 때문에 POST 요청은 GET과 달리 대용량 데이터를 전송할 수 있다.
  4. 그리고 POST로 요청을 보낼 때에는 요청 헤더의 Content-Type에 요청 데이터 타입을 표시해야 한다.
  5. 만약, 데이터 타입을 표시하지 않으면 서버는 내용이나 URL에 포함된 리소스의 확장자명 등으로 데이터 타입을 유추하며 알 수 없는 경우에는 application/octet-stream으로 요청을 처리한다.
  6. 참고로, POST method는 데이터가 body로 전송되고 내용이 눈에 보이지 않아 GET method 보다 보안적인 면에서 안전하다고 생각할 수 있지만, POST 요청도 크롬 개발자도구에서 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해서 전송을해야 한다.

 

 

GET과 POST의 차이점

 

  1. GET method는 idempotent, POST method는 Non-idempotent하게 설계되었다.
  2. idempotent(멱등)은 동일한 연산을 여러 번 수행하더라도 동일한 결과가 나타나야 함을 의미한다.
  3. 여기서 GET이 idempotent하게 설계되었다는 것은 GET으로 서버에게 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 함을 의미한다.
  4. 이에 따라 GET은 설계원칙에 따라 서버의 데이터나 상태를 변경시키지 않아야 하기 때문에 주로 데이트를 조회할 때 사용된다.
  5. 반대로 POST는 Non-idempotent 하기 때문에 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다르게 돌아온다.
  6. 이에 따라 POST는 서버의 상태나 데이터를 변경시킬 때 사용된다. (ex. 게시글 저장, 게시글 삭제 등) 
  7. 이처럼 POST는 생성, 수정, 삭제에 사용할 수 있지만 생성에는 POST, 수정은 PUT 또는 PATCH, 삭제는 DELETE가 더 용도에 맞는 메소드라고 할 수 있다. 

 

 

'기타' 카테고리의 다른 글

TIL - 22.02.22  (0) 2022.02.22
TIL - 22.02.21  (0) 2022.02.21
TIL - 22.02.17  (0) 2022.02.17
TIL - 22.02.16  (0) 2022.02.16
TIL - 22.02.15  (0) 2022.02.16

댓글