HTTP 관련 발표 정리
1. [C334] HTTP의 메소드와 CRUD(create/read/update/delete)를 적절하게 짝짓고, POST와 PUT의 차이점을 설명하세요.
create : POST
- 생성할 때에 사용
read : GET
update : PUT, PATCH
delete : DELETE
POST 와 PUT 의 차이점
: POST : 새로운 리소스를 추가할 때에 사용한다.
PUT : 리소스를 새로 추가하거나 기존에 리소스가 있다면 리소스를 변경한다.
PUT은 여러번 호출해도 DB의 결과상태는 바뀌지 않으나 POST의 경우 여러번 호출 시 DB의 결과 상태가 바뀐다.
즉 PUT의 경우 멱등성이 성립된다.
2. [C335] HTTP 응답 코드의 200, 300, 400, 500번대의 특징과 차이점을 설명하세요.
200번대: 성공 응답
= 서버가 성공적으로 결과를 반환했을 때
주요 코드:
200 OK : 요청 완료
201 Created : 새로운 리소스가 생성됨.
300번대: 요청 완료를 위해 추가 작업 조치가 필요할 때.
= 요청한 URI가 리다이렉션되었을 때
주요 코드:
301 Moved Permanently : 요청한 리소스의 URI가 변경되서 다른 URI 에서 대신 응답해줬을 때
304 Not Modified : 이것은 캐시를 목적으로 사용된다. 이것은 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그러므로 클라이언트는 계속해서 응답의 캐시된 버전을 사용한다.
예를 들어 내가 www.naver.com 에 들어왔을 경우 서버에서 관련 이미지를 많이 받아왔을 것이다, 만약 www.naver.com 을 다시 재접속한다면 기존에 받아놨던 같은 이미지는 다시 서버에서 받아올 필요 없이 브라우저에서 이전에 받았던 이미지를 재사용하면 될 것이다. 따라서 304를 리턴함으로써 이미지를 다시 가져오지 말고 브라우저에게 기존의 이미지를 재사용하도록 알려주는 역할을 한다.
400번대: 클라이언트 오류 응답
주요 코드:
400 Bad Request : 잘못된 문법으로 인하여 서버가 요청을 거부했을 경우
401 Unauthorized : 클라이언트가 누구인지 인증이 되지 않았을 경우
403 Forbidden : 클라이언트가 누구인지 인증은 되었으나 클라이언트에게 권한이 없을 경우
404 Not Found : 요청받은 리소스를 찾을 수 없는 경우
500번대 : 서버 오류 응답
주요 코드:
500 Internal Server Error : 웹 사이트 서버에 문제가 있음을 의미
레퍼런스: