http://velog.io/write?id=itonse
http://velog.io/login
// body
{
"email": "user@example.com",
"password": "password123"
}
GET
은 SELECT 적인 성향을 갖고 있어서 서버에서 데이터를 가져와서 보여주는 용도에 쓰이며 서버의 값이나 상태 등을 변경하지 않는다.
반면에 POST
는 서버의 상태를 변경하기 위해서 또는 추가하기 위해서 사용되는데 이는 INSERT 또는 UPDATE 문과 비슷한 역할을 한다.
GET
방식의 요청은 브라우저 캐싱이 가능하다. 이는 브라우저가 한 번 받아온 데이터를 임시 저장소에 저장해두고, 재요청이 발생했을 때 캐시된 데이터를 재사용함으로써 더 빠른 응답 속도를 제공할 수 있다.
반면에 POST
방식은 브라우저 캐싱을 사용하지 않는데, 이는 POST 요청이 서버의 상태를 변경할 수 있는 작업을 수행하기 때문에 각 요청이 고유해야 하고 캐싱이 적절하지 않을 수 있다. 따라서 POST 요청은 매번 서버로부터 새로운 데이터를 받아와야 하며, 이로 인해 GET 방식에 비해 응답 시간이 느릴 수 있다.
특징 | GET 방식 | POST 방식 |
---|---|---|
URL 형식 | http://velog.io/write?id=itonse | http://velog.io/login |
데이터 전달 | URL에 파라미터를 추가하여 데이터 전송 | HTTP 요청 본문(body)을 통해 데이터 전송 |
데이터 길이 | URL 길이 제한이 있음 (2,048자 이하) | 본문 크기에 대한 제한이 더 넓음 (최대 2GB) |
보안성 | URL에 데이터가 노출되므로 보안성이 낮음 | 요청 본문에 데이터를 숨겨 보낼 수 있어 보안성이 높음 |
캐싱 | 브라우저에서 자동으로 캐싱 가능 | 브라우저 캐싱이 일반적으로 사용되지 않음 |
사용상황 | 데이터 조회나 사용자가 입력한 정보가 노출되어도 괜찮은 경우 | 데이터 추가, 수정, 삭제 등 서버의 상태를 변경해야 할 때 또는 사용자 정보의 보안이 필요한 경우 |
ref.
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/Network
https://mundol-colynn.tistory.com/141