한 마디로 -> 링크를 기반으로 데이터를 주고 받기 위해 서로 지키도록 정한 규칙
모든 프로그램이 이 규칙에 맞게 개발되었기에 서로 데이터를 교환할 수 있는 것
그럼 그 규칙이 뭔데?
출처: Lokesh Chinni's Medium blog
HTTP 통신은 클라이언트가 요청하면 서버가 응답하는 형태로 이루어짐
식당 VS 웹
식당에서 종이(주문서, 계산서)에 요구사항을 적어 의사소통을 하듯이
웹에서는 HTTP Message(HTTP request, HTTP response)에 요구사항을 적어 의사소통을 함
그럼 대체 HTTP Message가 뭔데?
출처: MDN
서버와 클라이언트 간에 데이터가 교환되는 방식
개발자가 손수 작성하는 일은 드물며, 브라우저,웹 서버, 프록시, 소프트웨어 등이 그 일을 대신함
메시지 타입
클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지
요청에 대한 서버의 답변
메시지 구조
시작 줄(HTTP request) or 상태 줄(HTTP response)
헤더
본문
+@ 빈 줄(empty line): 요청에 대한 모든 메타 정보가 전송되었음을 알리는 역할
메시지 개요
시작 줄 or 상태 줄
실행되어야 할 요청 or 요청 수행에 대한 성공 혹은 실패가 기록되어 있음. 이 줄은 항상 한 줄로 끝남.
시작 줄
ex: GET(HTTP 메서드) /background.png(요청 타겟(ex.URL)) HTTP/1.1(HTTP 버전)
상태 줄
ex: HTTP/1.1(HTTP 버전) 404(상태 코드) Not Found(상태 텍스트)
헤더
본문