HTTP란?
HTTP(Hypertext Transfer Protocol)으로 프로토콜이란 상호 간에 정의한 규칙을 의미하며 특정 기기 간에 데이터를 주고 받기 위해 정의 되었다. 웹에서는 브라우저와 서버 간에 데이터를 주고 받기 위한 방식으로 HTTP 프로토콜을 사용한다.
HTTP 프로토콜을 데이터로 주고 받기 위해서는 요청(request)를 보내고 응답(response)을 받아야한다.
클라이언트(client)란 요청을 보내는 쪽을 의미하며 일반적으로 웹 관점에서는 브라우저를 의미한다.
서버(server)란 요청을 받는 쪽을 의미하며 일반적으로 데이터를 보내주는 원격지의 컴퓨터를 의미한다.
Uniform Resource Locators의 약자로 서버에 자원을 요청하기 위해 입력하는 영문주수이다.
서버의 특정 동작을 수행하고 싶을땐 HTTP 요청 메서드(HTTP Request Method)를 이용한다. 일반적으로 HTTP 요청 메스드는 HTTP Verbs라고도 불리며 데이터에 대한 조회, 생성, 변경, 삭제 동작을 HTTP 요청메서드로 정의 할 수 있다. 때에 따라서 POST 메서드로 PUT, DELETE의 동작도 수행 할 수 있다.
http 요청 메서드가 클라이언트에서 설정해야 할 정보라면
HTTP 상태코드(HTTP Status Code)는 서버에서 설정해주는 응답(Response) 정보이다.
ex)
http://domain.com/users
위 요청을 보내고 나면 서버에서 응답으로 오는 코드는 200(성공)혹은 404(실패)이다. 따라서 이 HTTP 상태 코드로 추가적인 로직을 구현 할 수 있게 된다.
200번대의 상태코드는 대부분 성공을 의미한다.
300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새URL로 리다이렉트를 유도하는 경우이다.
Etag(entity tag) HTTP 응답의 헤더는 자원의 특정 버전에 대한 식별자이다. 콘텐츠가 변경되지 않은 경우 웹서버에서 전체 응답을 다시 보낼 필요가 없으므로 캐시를 보다 효율적으로 사용하고 대역폭을 절약 할 수 있다. 또한 리소스의 동시 업데이트가 서로를 덮어 쓰는 것을 방지하는데 도움을 준다.
400번대 상태코드는 대부분 클라이언트의 코드가 잘못된 경우이다. 유효하지 않은 자원을 요청했거나 요청한 권한이 잘못된 경우 발생한다. 우리가 가장 자주보는 에러코드는 404로 요청한 자원이 서버에 없다는 뜻이다.
500번대 상태 코드는 서버 쪽에서 오류가 난 경우이다.
참고: https://joshua1988.github.io/web-development/http-part1/