HTTP는 웹상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. - 위키백과 -
위에서 볼 수 있다시피 HTTP(Hypertext Transfer Protocol)는 정보를 주고 받기 위한 통신 프로토콜이다. 웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 사용하고있기 때문에 프런트엔드 개발자라면 필수적으로 알아야 하는 지식 중 하나이다.
여기서 상태가 없다는 말은 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말이다.
이 말은 서버는 절대로 어떤 일이 있어도 지난 요청을 기억하지 않는다. 따라서 브라우저에서 지난 요청에 대해서 물어보더라도 서버는 어떤 대답도 할 수 가 없다.
이러한 특징 덕택에 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능 상의 이점이 생긴다.
복잡한 구조 없이 그때 그때 오는 요청에 따라 대답만 하면 되기 때문
HTTP로 데이터를 주고 받기 위해서는 밑의 그림과 같이 Request를 보내서 Response을 받아야한다. (코드로 작성할때는 Req, Res라고 많이들 쓴다.)
HTTP의 작동 방식을 알기 위해선 먼저 URL에 대해서 알아야 한다. URL(Uniform Resource Locators)은 서버에 Request를 보내기 위해 입력하는 영문 주소이다. 아무래도 숫자로만 되어 있는 IP 주소보다는 영문으로 된 URL이 훨씬 기억하기 쉽기 때문에 URL을 사용한다.
위에서 살펴본 URL을 이용하면 서버에 데이터를 요청할 수 있다. 여기서 요청하는 데이터에 특정 동작을 수행하고 싶으면 HTTP 요청 메서드(Http Request Methods)를 이용할 수 있다.
일반적으로 HTTP 요청 메서드는 HTTP Verbs라고도 불리며 아래와 같이 주요 메서드를 갖고 있다.
PUT과 DELETE를 사용하기보다는 전부 POST로 처리하는 편이다
참고로 약 2년간 웹 개발을 하면서 위의 2개의 메서드는 한번도 본 적도 없다.
Ex)
https://youtube.com 이라는 URL로 요청을 보내게 된다면 서버로부터 오는 응답은 실패 or 성공으로 나뉘게 된다. HTTP에서는 200번대부터 500번대까지 번호를 사용하여 상태를 상세하게 구분한다.
HTTP의 모든 상태 코드를 보고 싶다면 여기로