.png)
HTTP는 HTML문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜(프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다.) 중에 하나 이며, 클라이언트-서버 프로토콜입니다.
비연결성(Connectionless)
HTTP는 연결을 유지하지 않은 채 응답과 요청을 처리합니다. 요청에 대한 응답을 처리하게 되면 연결을 끊어 버립니다.
무상태성(Stateless)
비연결성에 의해서 HTTP는 이전의 상태정보나 통신 상태가 남아있지 않습니다. 요청에 답하는 동시에 연결을 끊고 통신을 종료하기 때문입니다.
GET - 특정 리소스를 가져오도록 요청
POST - 데이터를 서버로 제출하는 용도로 사용하며, 서버 상태의 변화를 일으킴
PUT - POST와 비슷하나, 연속적인 요청시에도 같은 효과를 가져옴. 기존 데이터를 교체하는 용도로 쓰일 수 있음
DELETE - 리소스의 삭제를 요청할 때 사용
HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. 메시지 타입은 두 가지가 있습니다. 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지고, 응답(response)은 요청에 대한 서버의 답변입니다.

HTTP 요청과 응답의 구조는 서로 닯았으며, 그 구조는 다음과 같습니다
1. start-line에는 실행되어야 할 요청, 또는 요청 수행에 대한 성공 또는 실패가 기록되어 있습니다.
2. HTTP headers에는 옵션으로 HTTP헤더 세트가 들어갑니다. 여기에는 요청에 대한 설명, 혹은 메시지 본문에 대한 설명이 들어갑니다.
3. 요청에 대한 모든 메타 정보가 전송되었음을 알리는 빈 줄이 삽입됩니다.
4. 요청과 관련된 내용(HTML 폼 콘텐츠 등)이 옵션으로 들어가거나, 응답과 관련된 문서가 들어갑니다. 본문의 존재 유무 및 크기는 첫 줄과 HTTP헤더에 명시됩니다.
HTTP메시지의 시작 줄과 HTTP헤더를 묶어서 요청 헤드(head)라고 부르며, 이와 반대로 HTTP메시지의 페이로드는 본문(body)이라고 합니다.
HTTP메시지 참고자료
HTTP상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다.