하이퍼미디어 문서를 전송하기 위한 통신 규약
월드 와이드 웹(World Wide Web)의 토대로, 하이퍼텍스트 링크를 통해 웹 페이지를 로드
통신(Communication) : 상대방과 정보를 주고받는 것
- 상대방 = Client와 Server
- 정보 = HTTP Message
HTML 문서, 그림, 멀티미디어 파일 등 월드 와이드 웹을 기반으로 한 인터넷의 컨텐츠에 접근하기 위한 응용 프로그램의 총칭
= 인터넷 사용을 도와주는 도구
브라우저 엔진 = 렌더링 엔진(레이아웃 엔진)
- 웹 브라우저의 핵심이 되는 소프트웨어 구성 요소
- 내용 정보(HTML, XML)와 서식 정보(CSS, XML) 등을 읽어들여 사람이 읽을 수 있는 문서로 표시
HTTP Server
- URL(Web address)과 HTTP(웹 페이지를 보여주기 위해 사용하는 프로토콜)의 소프트웨어의 일부
- 브라우저가 웹 서버에 있는 파일을 필요로 할 때, HTTP를 통해 파일을 요청
- 요청이 올바른 웹 서버(하드웨어)에 도달하면, HTTP 서버(소프트웨어)는 요청된 문서를 HTTP를 이용해 전송
서버와 클라이언트 간에 데이터가 교환되는 방식
- HTTP 메세지는 ASCII로 인코딩된 텍스트 정보
- 메시지 구조는 단순하게 이루어져 있고, 확장성이 좋음
- 서버주소, 요청 메서드, 상태 코드, target path, 헤더 정보, 바디 정보 등이 포함
- Request와 Response 모양이 비슷함 ( 똑같지 않음 )


- 시작줄 (Start Line)
요청에 필요한 세가지 요소를 포함
GET, PUT, POST, .. )또는 방식 (HEAD, OPTION, ..)
- 헤더 (Header)
요청에 대한 부가적인 정보를 전송
User-Agent, Accept-Type, Accept-Language )Referer)하거나, 제약을 추가 (If-none) Connection 등)Content-Length 등)- 바디 (Body)
서버에 던질 데이터
GET, DELETE, HEAD 등 서버에 리소스를 요청 시에는 필요하지 않음PUT, POST 등의 서버에서 작업을 수행시 필요한 정보를 입력
- 상태줄 (Status Code)
요청에 대한 응답 상태를 포함
- 헤더 (Header)
요청에 대한 부가적인 정보를 전송
Vary, Accept-Ranges 등 상태 줄을 넘어서는 정보를 제공Content-Length 등)- 바디 (Body)
응답으로 보내줄 데이터
201, 204 등의 상태 코드를 가지는 응답에는 바디(Body) 필요 없음요청과 응답 모두 헤더를 포함해야 함
General Header
- 데이터와 관련 없는 헤더
Date, Connection (클라이언트와 서버 간의 연결에 대한 옵션) 등Request Header
- 요청하는 클라이언트에 대한 자세한 정보를 포함하는 헤더
Host, User-Agent, CookieResponse Header
- 서버 자체에 대한 정보, 응답에 대한 부가적인 정보를 포함하는 헤더
Server, Allow, Etag, Access-Control-Allow-Origin 등Entitiy Header
- 콘텐츠 길이나 MIME 타입과 같이 바디(Body) 에 대한 자세한 정보를 포함하는 헤더
Content-Type, Content-Length 등클라이언트는 서버로 요청을 보낼 때, 요청 메서드로 특정 요청에 대한 동작을 정의
GET
존재하는 자원에 대한 요청
POST
새로운 자원 생성
PUT
존재하는 자원에 대한 변경 (자원 전체를 갱신)
PATCH
존재하는 자원에 대한 변경 (자원 일부를 갱신)
DELETE
존재하는 자원에 대한 삭제
OPTION
웹 서버에 지원되는 메서드의 종류를 확인할 때
GET과 POST 를 가장 많이 사용
클라이언트는 요청의 결과에 대한 상태 코드와 상태 텍스트를 반환 받음
1xx
Informational : 요청 정보를 처리 중
2xx
Success : 요청을 정상적으로 처리함
3xx
Redirection : 요청을 완료하기 위해 추가 동작 필요 / 다른 곳으로 처리 이동
4xx
Client Error : 클라이언트 요청의 오류
5xx
Server Error : 서버 측 오류
"RE"presentational "S"tate "T"ransfer "API"
API(Application Programming Interface)
사용자가 특정 기능을 사용할 수 있도록 제공하는 함수
GET
리소스 정보를 얻음
POST
리소스 생성
PUT
리소스 생성 or 업데이트
DELETE
리소스 제거