HyperText Transfer Protocol (하이퍼텍스트들을 전송하는 규약)
HTTP는 TCP/IP 기반
글을 보내는 데 http프로토콜에 맞춘 글을 보내는 것이 서버끼리의 통신이다
HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜입니다. (이러한 단점을 해결하기 위해 Cookie와 Seesion 등장)
HTTP는 연결을 유지하지 않는 프로토콜이기 떄문에 요청/응답(request/response) 방식으로 동작함.
기본적으로 request & response로 구성, 이 자체가 통신이다
일방적으로 보내기만 하는 규약도 있음
통신 자체가 그 이전에 통신이 있었던 것을 모름
그 상태(state)를 저장하지 않는다
즉, 서로의 요청&응답 끼리 연결되어 있지 않음 단발성으로 요청한데에 대한 응답을 할 뿐 그 히스토리가 저장되어 있지 않음
그다음 통신에 그걸 알게 하려면 보내면서 일전에 로그인했다는 정보를 담아서 보내야 그 다음 통신이 알 수 있게 되고 그런것을 쿠키나 세션에 담아놓음
request의 첫라인이고 3부분으로 되어 있다.
해당 요청에 대한 부가설명
jason처럼 key :value로 되어 있다
해당 reqeust의 실제 메세지/내용.
Body가 없는 request도 많다.
GET request들은 대부분 body가 없는 경우가 많음.
첫라인이고 request처럼3부분으로 되어 있다.
상태를 간략하게 나타내줌
3부분으로 구성되어 있다.
request의 header와 동일하나 user-agent대신 server가 있음
request와 동일함. 하지만 모든 response가 있지는 않다!
여러가지가 있었지만 요새는 하기 건들로 가는 것이 추세
!어려운 문제를 쉽게 하는 것이 잘하는 것!
GET
어떤 데이터를 가져오는 것, 받아오기만 할 때 사용
(렌더되었을 때 빠로 뿌려주는 정보들이라든가.. 가령, 해당 트위터의 트윗을 가져오는 느낌)
가장 간단하고 많이 사용되면서 데이터를 받아올 때 주로 사용되기 때문에 body를 안보내는 경우가 많음
POST
데이터 생성/수정/삭제 시 주로 사용 (트위터에서 새 트윗을 올리는 것)
수정, 삭제할 때 주로 사용하기 때문에 대부분 request에 body 포함시켜 보낼 때가 많다
options
특정 end point가 어떤 메서드를 사용하는 지 알아 낼때 사용
HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp
```