데이터를 주고 받는 양식을 정의한 통신 규약 중 하나
HTTP에는 Request, Response라는 개념이 존재
1. 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)
2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지에 대한 데이터를 실어 응답(Response) 만약 없다면 없는 페이지에 대한 데이터를 반환
3. 브라우저는 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줌
General : 브라우저에서 서버로 보낸 Request 데이터
HTTP 상태 코드(Status Code)를 통해 브라우저와 서버간의 요청, 응답 과정에서 발생할 수 있는 상황들을 표현 가능
1xx(Informational) : 요청이 수신 되었으며 처리가 계속되고 있음
→ 주로 웹 브라우저와 같은 클라이언트가 서버와의 연결 상태를 확인하기 위해 사용
2xx(Successful) : 클라이언트의 요청이 성공적으로 처리 되었음 나타냄
→ 가장 많이 사용되는 상태 코드는 200으로 클라이언트가 요청한 데이터가 서버에서 제공됨을 의미
3xx(Redirection) : 클라이언트가 추가적인 조치를 취해야 함을 나타냄
→ 이 상태 코드는 주로 페이지 이동, 리다이렉션 등에 사용
4xx(Clent Error) : 클라이언트에 오류가 있음을 나타냄
→ 이 상태 코드는 주로 클라이언트의 잘못된 요청, 인증 오류 등에 사용
→ 가장 많이 사용되는 상태코드는 404로 클라이언트가 요청한 페이지나 리소스를 서버에서 찾을 수 없음을 의미
5xx(Server Error) : 서버에 오류가 발생했음을 나타냄
→ 이 상태 코드는 주로 서버의 오류, 서버 과부하 등에 사용
→ 가장 많이 사용되는 상태 코드는 500으로 서버 내부 오류가 발생함을 의미
Request Headers : 브라우저에서 서버로 보낸 Request 데이터
Response Headers : 서버가 웹 페이지 데이터와 함께 보낸 추가 데이터
서버에서 브라우저로 반환해준 웹 페이지를 그려주기 위한 데이터
GET
: 이름 그대로 어떤 리소스를 얻을 때 사용POST
: 웹 서버에 데이터를 게시할 때 사용하는게 일반적PUT
, DELETE
등의 여러 요청 방식이 존재GET
과 POST
다양한 의사 표현을 위한 데이터를 모두 Header 필드에 넣고 주고 받는다
또한 위에서 설명된 메서드도 사실은 헤더에 포함되어 서버로 보내진다.
ex. GET naver.com HTTP/1.1 // Get 방식의 Method, URL, HTTP 버전
HTTP의 Payload를 통해 HTML, JSON같은 실제 데이터들을 담아서 요청하고 응답받을 수 있다.
Header+Payload
로 구성된 데이터를 이용해 Request와 Response를 주고 받는다.