프로토콜(protocol)이란?
서로 간의 통신을 위한 약속, 규칙
주고 받을 데이터에 대한 형식을 정의한 것
HTTP(Hyper Text Transfer Protocol)란?
단순하고 읽기 쉽다. - 텍스트 기반의 프로토콜
상태를 유지하지 않는다.(stateless) - 클라이언트 정보를 저장x
이를 보완하기 위해서 쿠키, 세션을 사용
HTTP 메시지 - 응답 메시지
HTTP/1.1 200 OK -> 200은 상태코드이고 OK는 설명
200번대 상태코드는 성공, 300번대는 다른 URL 요청, 400번대는 클라이언트 에러, 500번대는 서버 에러(요청ok)이다.

(클라이언트에러)

(서버에러)
HTTP 메시지 - 요청 메시지
GET, POST - 제일 많이 쓰이는 요청 메서드
요청라인, 헤더, 바디로 구분. 헤더와 바디 사이에는 빈 줄이 있다.
GET은 서버로부터 리소스를 요청해서 가져오기 위한 것
읽기위한것, 바디가 없음
대신, 쿼리스트링으로 데이터를 보낼 수 있음
POST는 내용이 바디에 있어서 서버에 전송할 데이터를 담고있음
쓰기위한것, 바디가 있음
게시판글쓰기, 로그인, 회원가입, 파일첨부 등이 있음

HTTP + (TLS/SSL) -> https://(암호화, 보안에 유리)
텍스트 파일 vs 바이너리 파일

MIME(Multipurpose Internet Mail Extensions)
텍스트 기반 프로토콜에 바이너리 데이터 전송하기 위해 고안
HTTP에 Content-Type헤더에 사용. 데이터의 타입을 명시

Base64(64진법)
