인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다.
클라이언트는 URL을 이용해서 서버에 접속하고 데이터를 요청한다. 이때, 어떤 종류의 데이터든지 전송이 가능하다.
TCP/IP 통신 위에서 동작하며 80번 포트를 사용한다. (OSI 7계층에 해당한다.)
- Connectionless
- Stateless
http는 connectionless
로, 서버에 연결하고 요청해서 응답을 받으면 연결을 끊어버린다. 이때 각각의 데이터 요청이 독립적이다.
connectioneless로 연결을 끊기 때문에 서버는 클라이언트의 이전 상태를 알 수 없는데 이것이 stateless
이다. 이전의 로그가 없어 상태를 유지할 수 없는 것이다. (이전의 기록이 남지 않음.) Http는 cookie
를 이용해 이를 해결한다.
클라이언트 소프트웨어는 URL을 이용해 자원의 위치를 확인한다.
이때, HTTP는 전송프로토콜이고 URL은 자원의 위치를 확인하는 프로토콜이다.
예를 들어, https://www.naver.com/ 와 같은 네이버 URL이 있다.
여기서 https:// 는 https 프로토콜을 사용하고
www.naver.com/ 는 자원의 인터넷 상의 위치이다.
메소드는 클라이언트의 요청의 종류를 서버에게 알린다.
이때 모든 메소드는 GET
과 POST
로 표현 가능하다.
HTTP는 암호화 되지 않아 제 3자가 정보조회가 가능하다.
하지만 HTTPS는 데이터 암호화가 추가 되어 제 3자가 정보조회가 불가능하다.
대칭키 암호화와 비대칭키 암호화를 사용한다.
출처
https://shlee0882.tistory.com/107
https://joshua1988.github.io/web-development/http-part1/
https://youtu.be/PUPDGbnpSjw
https://youtu.be/iSFEjQRulf0