T.I.L HTTP와 HTTPS [21.03.24]

박준석·2021년 3월 24일
0

T.I.L

목록 보기
2/11

HTTP, HTTPS 우리가 웹에서 도메인을 입력할 때 흔히 볼수있는 친구들이다. 단편적으로 봤을때 둘의 차이점은 알파벳 'S'의 유무이다.
그런데 이 'S' 하나차이가 어마무시한 차이를 불러 일으킨다는 점이다.

그러면 HTTP와 HTTPS차이를 알아보기 전에 HTTP와 HTTPS에 대해서 알아보자.

1. HTTP ?

HTTP는 Hyper Text Transfer Protocol의 약자이다. 우리가 사용하는 브라우저와 웹서버 사이에서 문서를 전송하기 위한 통신규약이다.

2. HTTP메소드?

HTTP에는 사용할 수 있는 메소드가 몇개 존재한다.
HEAD, GET, POST, DELETE, OPTION 등의 메소드가 있다. 이 중에서 코드를 작성 할 때 가장 많이 사용하는 메소드는 GET과 POST이다.

GET

GET의 경우는 서버로부터 정보조회를 할 때 사용한다. 예를 들어 웹사이트 게시판 리스트를 불러올 때 사용한다. 그래서 무언가 내용을 작성하고 삭제는 할 수없고 오로지 조회만 가능하다.

GET은 요청(Request)을 전송할 때 데이터를 Body에 담지않고 쿼리스트링으로 전송한다.

GET요청이 성공적으로 이루어진다면 XML이나 JSON과 함께 200 (OK) HTTP 응답 코드를 리턴한다.

POST

POST의 경우는 리소스를 생성/변경하기 위해서 사용한다.

GET과 반대로 Body에 데이터를 담아서 전송한다. GET과 달리 대용량 데이터 전송이 가능하고, Body의 길이 제한없이 전송이 가능하다.

POST 작성시에는 요청 헤더의 Content-Type에 요청 데이터의 타입을 표시해야 합니다.


위 그림을 살펴보면 GET에서는 단순히 주소를 입력해서 서버로 넘겨준다. 저렇게 되면 저 주소에 담겨진 사이트가 웹화면 띄워질것이다. 조회를 해서 보여지기만 한 것이다.
하지만 POST의 경우는 주소에 Payload라고 해서 그 안에 다양한 데이터들이 담겨서 서버에 전송된다.

3. HTTPS

HTTPS는 'S'의 의미만 알면된다. 나머지는 같은 뜻이기 때문이다.
Secure이라는 뜻이다. Secure이라고 하면 보안이라는 단어를 떠올릴 수 있다. 조금 더 생각한다면 HTTP보다는 보안에 무언가가 있다라고 생각해볼 수 있다.

HTTP프로토콜의 보안성을 강화한 프로토콜이다. S는 Secure, SSL의 약자라고 생각하면 된다.

HTTPS는 HTTP처럼 일반 텍스를 이용하지만 SSL이나 TLS프로토콜을 이용해서 세션데이터를 암호화한다. 쉽게 말해서 데이터를 암호화해서 보안을 강화하고 보호를 보장하고 있다.

SSL ?
SSL은 Secure Socket Layer의 줄인말이다. 
브라우저 또는 사용자의 컴퓨터와 서버 또는 웹사이트 간에암호화된 연결을 수립하는 데 사용된다.

SSL은 왜 사용할까?

  • 접속한 서버가 신뢰 할 수 있는 서버임을 보장한다.
  • SSL 통신에 사용할 공개키를 클라이언트에게 제공한다.
  • 즉, CA로부터 신뢰할 수 있는 사이트라는 것을 인증받으면 공개키를 얻을 수 있고, 공개키를 통해 데이터를 암호화, 복호화 한다
CA ?
Certificate Authority의 줄인말이다. 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 
보장하는 기관들이다. 아무 기업이나 할 수 있는 것이 아니고 신뢰성이 엄격하게 공인된 기업들만이 참여 가능하다.


위 그림에서 보면 HTTPS를 사용하면 비밀번호 abc123이 암호화가 되어서 해커에게 'xyaerXzabc'이렇게 보이게 된다.

profile
꾸준히 성장하는 개발자가 되는 것이 목표입니다!

0개의 댓글