HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받기 위한 프로토콜(데이터 통신을 원활하게 하기 위한 통신 규약)
클라이언트와 서버 간의 요청과 응답을 정의.
HTTP는 클라이언트-서버 모델을 기반으로 동작.
클라이언트가 요청을 보내면 서버가 응답을 반환. 요청과 응답은 텍스트 기반 메시지로 구성됨.
HTTP 메시지는 요청(Request)과 응답(Response)으로 구성됨.
클라이언트가 서버에 데이터 요청 시 사용.
예시
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
요청 헤더에 인증 정보 포함 이유
서버는 요청을 보낸 사용자가 누구인지 확인이 필요함. 이 과정을 인증(Authentication)이라고 함.
인증을 통해 사용자 식별을 하고 사용자에게 권한이 있는지 확인함.
요청 헤더에 인증 정보 포함 방법
요청 헤더는 요청에 대한 추가 정보 전달 용도.
헤더에 인증 정보를 포함해서 서버가 요청을 받았을 때 해당 정보를 통해 사용자 인증 처리.
GET /protected-resource HTTP/1.1
Host: example.com
**Authorization: Bearer <Access-Token>**
Access-Token은 로그인한 사용자임을 증명(로그인했음을 알려주는 정도)하는 키 역할 수행함.
서버가 클라이언트 요청에 대한 결과 반환 시 사용.
예시
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1354
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
HTTP 상태코드는 서버가 클라이언트 요청 처리 결과를 나타내는 값.세 자리 숫자로 구성. 첫 번째 자리 숫자를 기준으로 의미 구분 가능.