
HTTP(Hyper Text Transfer Protocol)이란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
비연결성 프로토콜이다. 클라이언트가 이전에 요청한 내용을 기억하고 있지 않다.응용프로토콜(application protocol) 이다.Cookie, Session을 사용한다.요청/응답(request, response) 방식으로 동작한다.
HTTP는 웹을 지탱하는 심플한 기술이지만 치명적인 단점이 있다. 브라우저와 웹서버가 통신함에 있어서 주고 받는 데이터가 암호화 되지 않고 생 날것 그대로 전송되어진다는 점이다.
HTTP는 인터넷이라는 바다를 지나 웹서버와 브라우저가 통신하므로 그 중간 어딘가에서 해커가 중간 통로를 도청하게 된다면 날 것 그대로의 중요한 정보들을 탈취할 수 있다. 만약 이러한 데이터가 로그인 기능에서 사용하는 아이디 비밀번호 등의 데이터라면 치명적일 수 있다. 뿐만 아니라 정상적인 데이터를 중간에서 악의적으로 변조시킬 수도 있다.
HTTPS에 SSL이 첨가된 방식으로 주고 받는 정보가 암호화되어 보안성이 강화된 방식이다. 443 port를 사용한다.
공개키 암호화 방식

인증서와 CA(Certificate authority)
SSL을 적용하기 위해서는 인증서가 필요하다.
인증서 내용에는 서비스의 정보(CA, 도메인등), 서버 측의 공개키 가 있다.
이 인증서를 발급해주는 기업을 CA라고 한다. 인증서가 보안에 관련된 것인 만큼 이 CA는 영향력있고 신뢰할수 있는 기업에서만 가능하다.
그리고 우리의 브라우저는 CA리스트를 미리 가지고 있다. CA목록에 있는 기업을 공인된 CA라고 하며 목록에 없는 기업을 사설CA라고 한다.
전자서명(공개키방식) 을 이용해 인증서를 제작하고 웹서버로 인증서를 발급한다.대칭키를 암호화 해서 웹서버에 전달한다.대칭키를 이용하는 이유
공개키 방식보다 속도가 빠르다. 하지만 대칭키를 바로 전달할 경우 중간에 탈취당할 경우가 생긴다. 그래서 위 방식대로 암호화해서 전달하게 되면 탈취당할 위험이 적어진다.