HTTP란
- 클라이언트와 서버의 데이터전송 프로토콜(규칙)
- HTTP는 클라이언트의 요청을 받고 서버가 응답을하면 그 연결을 끊어버려서 서버는 매 요청시 사용자가 누군지 확인해야하는 단점이있다. 이를 보완하기 위해 쿠키와 웹스토리지를 사용한다.
HTTPS
- HTTPS는 SSL 의 껍질을 덮어쓴 HTTP 라고 할 수 있다. 즉, HTTPS 는 새로운 애플리케이션 계층의 프로토콜이 아니라는 것이다. HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) or TLS(Transport Layer Security)라는 프로토콜로 대체하는 것 뿐이다. HTTP 는 원래 TCP 와 직접 통신했지만, HTTPS 에서 HTTP 는 SSL 과 통신하고 SSL 이 TCP 와 통신 하게 된다. SSL 을 사용한 HTTPS 는 암호화와 증명서, 안전성 보호를 이용할 수 있게 된다.
HTTPS 의 SSL 에서는 공통키 암호화 방식과 공개키 암호화 방식을 혼합한 하이브리드 암호 시스템을 사용한다. 공통키를 공개키 암호화 방식으로 교환한 다음에 다음부터의 통신은 공통키 암호를 사용하는 방식이다.
HTTP 특징
-
클라이언트 서버 구조
- 클라이언트의 요청이 있어야만 서버에서 응답을 해준다.
-
무상태 프로토콜(스테이스리스)
- 클라이언트 요청 후 서버가 응답 후 서버가 클라이언트 상태를 유지하지 않는다
- 클라이언트 상태를 유지하지 않으므로 요청이 증가해도 서버가 대응하기 쉽다. -> 응답 서버를 쉽게 바꿀 수 있으므로 무한한 서버 증설이 가능
- 단 , 로그인과 같이 상태를 유지해야하는 경우가 있다.
-
비연결성
- 서버는 응답 후 클라이언트와 연결을 끊는다.
- 이 때문에 서버 자원을 효율적으로 사용할 수 있다.(동시접속자가 많아도 실제 동시에 처리되는 작업은 동시접속자 수 보다 적음)
- 단 , 3 way handshake가 매번 발생한다.
- 헤더는 body 및 res/req에 대한 정보를 포함한다.
- 일반헤더
- body컨테츠와 관련이 없고 res/req 생성된 날짜 및 시간등 일반적인 정보가 포함된다.
- 요청 / 응답 헤더
- 요청항 URL , 메소드 등 정보가 포함된다.
- 엔티티 헤더
- body 데이터를 해설할 수 있는 정보가 포함된다.
HTTMP Body
- 메세지 본문을 통해 데이터를 전달하며 메세지 본문을 payload라 한다.
URL/URI
- URI : 자원의 식별자
- URL : 자원의 위치로 자원을 식별
- URN : 고유한 이름으로 자원을 식별
https://www.min.kr/kim?name=1234
https~kim 까지가 URL
www~1234 까지가 URN
전체주소가 URI