텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이렇게 규약을 정해두었기 때문에 모든 프로그램이 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.
HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해 해석이 된다.
TCP/ IP를 이용하는 응용 프로토콜이다.
(컴퓨터와 컴퓨터간에 데이터를 전송 할 수 있도록 하는 장치로 인터넷이라는 거대한 통신망을 통해 원하는 정보(데이터)를 주고 받는 기능을 이용하는 응용 프로토콜)
HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다.
(이러한 단점을 해결하기 위해 Cookie와 Session이 등장하였다.)
HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작한다.
GET은 사용자가 특정 데이터를 얻고자 할때, 사용하는 메소드이다. 특징으로는 해당 요청은 캐싱될 수 있다는 것이 있다.
POST는 사용자가 특정 데이터를 생성, 수정하는 경우 사용하는 메소드로, 특징으로는 캐싱될 수 없다는 점이 있다.
가장 큰 차이는 GET은 서버 상태의 변경을 요구하지 않지만, POST는 상태 변경을 요한다는 것이 있다.
추가로, GET은 사용자의 요청 정보가 헤더에 쓰여져, 중간에서 쉽게 가로채질 수 있고 POST는 정보가 바디에 쓰여져 GET 요청보다는 안전하다 할 수 있지만 이 또한 충분히 가로채질 수 있다는 점이 있다.