웹의 초기 구성 요소
HTML: 웹페이지를 구성하는 마크업 언어
URL: 웹페이지에 접근할 수 있도록 도와주는 주소체계
웹 브라우저 & 웹 서버: HTML 파일을 주고받는 소프트웨어
HTTP: 브라우저와 서버가 통신할 때 사용하는 규칙
HTML뿐만 아니라, 이미지, 오디오, 동영상 등 다양한 멀티미디어 파일을 전송하는 데 사용됨
웹이 정보를 받기위해 서로 알아듣는 메세지
요청: Request (요청 메시지)
응답: Response (응답 메시지)
HTTP 메세지의 구조
- Request 메시지 (클라이언트 → 서버)
GET /index.html HTTP/2.0
- /index.html이라는 파일을 GET 방식으로 요청
Host: example.com
- 어떤 주소(도메인)에 요청한 것인지 명시
Response 메시지 (서버 → 클라이언트)
HTTP/1.1 200 OK
- 통신 성공, 요청한 파일을 보내주겠다는 뜻
Content-Type: text/html
- 응답이 HTML 문서라는 의미
Content-Length: 5230
- 응답 데이터의 크기
GET, POST 등. 요청의 종류를 의미
1. GET: 서버에서 데이터를 요청
2. POST: 서버에 데이터를 전송
어떤 리소스를 요청하는가
HTTP 버전: 클라이언트가 사용하는 프로토콜 버전
클라이언트(웹브라우저)가 서버에 추가적인 정보를 제공
Host: 요청 대상 서버의 주소
여러 도메인을 하나의 서버에서 운영할 수 있도록 도와줌 (가상 호스트 지원)
User-Agent: 요청을 보낸 브라우저/운영체제 정보
Accept-Encoding: 브라우저가 처리할 수 있는 압축 방식 (gzip, deflate, br)
If-Modified-Since: 마지막으로 받은 시점 이후로 리소스가 변경되었는지 확인
변경되지 않았다면 서버는 데이터를 다시 보내지 않고 응답을 줄일 수 있음
주로 POST 요청에서 사용됨
서버로 전송할 실제 데이터를 포함 (예: 로그인 폼 정보)
바디와 헤더는 빈 줄로 구분
브라우저는 요청 메시지를 만들고,
서버는 응답 메시지를 생성해서 보냄

웹 브라우저가 HTML을 받아와서 화면을 띄운다.
사용자가 로그인 버튼을 누른다
브라우저가 API 서버에 로그인 요청을 보낸다.
API 서버가 처리한 뒤, 로그인 성공 여부를 알려준다.