고수만/네트워크

HTTP와 HTTPS의 차이점?? -쉬움

JumBack2 2023. 8. 5. 15:13

일단 우리는 HTTP라는 말을 너무도 많이 들어봤다. HTTP는 Http: HyperTexT Protocol의 약자이다.

이것도 결국 프로토콜이라는 것인데 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜이다. 그럼

하이퍼텍스트는 무엇인가? 

 

하이퍼텍스트(Hypertext, 문화어: 초본문, 하이퍼본문)는 참조(하이퍼링크)를 통해 독자가 한 문서에서

다른 문서로 즉시 접근할 수 있는 텍스트이다. -위키백과

 

간단히 말하자면 웹을 구성하는 text들이 하이퍼택스트이다. 따라서 HTTP는 웹을 구성하는 text들을 

빠르게 교환하기 위한 규칙이라는 것이다.

 

그럼 왜 HTTP와 HTTPS가 나뉘는 것일까? 이를 알기 위해 HTTP의 구동방식을 알아야 한다.

처음 HTTP가 나왔던건 1999년 HTTP/1.1이 등장하였다. 

HTTP는 요청(Request)과 응답(Response)으로 구조가 나누어져 있고 비연결식으로 통신하기 때문에 요청을 

받으면 응답 코드와 내용을 전송하고 클라이언트와 연결을 종료한다.

 

HTTP에서 지원하는 요청 메시지는 다음과 같다.

  • GET: 클라이언트가 서버에게 URL에 해당하는 자료의 전송을 요청한다.
  • HEAD: GET 요청으로 반환될 데이터 중 헤더 부분에 해당하는 데이터만 요청한다.
  • POST: 클라이언트가 서버에서 처리할 수 있는 자료를 보낸다. 예를 들어, 게시판에 글을 쓸 때 클라이언트의
    문서가 서버로 전송되어야 한다.
  • PATCH: 클라이언트가 서버에게 지정한 URL의 데이터를 부분적으로 수정할 것을 요청한다.
  • PUT: 클라이언트가 서버에게 지정한 URL에 지정한 데이터를 저장할 것을 요청한다.
  • DELETE: 클라이언트가 서버에게 지정한 URL의 정보를 제거할 것을 요청한다.
  • TRACE: 클라이언트가 서버에게 송신한 요청의 내용을 반환해 줄 것을 요청한다.
  • CONNECT: 클라이언트가 특정 종류의 프록시 서버에게 연결을 요청한다.
  • OPTIONS: 해당 URL에서 지원하는 요청 메세지의 목록을 요청한다.

 

이 중 GET 과 HEAD 요청은 원칙적으로 이를 호출한다고 해서 서버 측의 데이터에 변화가 있어서는 안 된다.

이를 Safe Method 라고 분류한다. 또한, GET, HEAD, PUT, DELETE 는 동일한 요청이 한번 전송되었을 때와 여러 번

연속하여 전송되었을 때의 서버 측의 처리 결과가 동일해야 한다. 이를 Idempotent Method 라고 분류한다.

 

주로 많이 쓰고 비교되는건 GET과  POST인데 GET은 게시글을 조회하는 것 같이 서버의 데이터를 바꾸지

않고 조회만 하는 경우 GET을 쓰고 POST는 게시글을 게시글을 새로 작성하는 것 같이 서버에 데이터를

넣어주거나 업데이트 해주는 일이 발생할 때 POST를 사용한다.

- 주니어 개발자 면접 때 필수 등장

 

그러나 HTTP는 단점이 존재했다.

기본적으로 HTTP는 보안에 취약했다. 클라이언트가 접속하여 요청을 하면 서버가 응답을 하는 구조인데

이 과정에서 데이터가 전송될 때 탈취하게 되면 아무나 읽을 수 있고 클라이언트인 척 속일 수이고
서버에게 데이터를 받아올 수도 있었기 떄문이다.

 

그래서 나온 것이 HTTPS 연결방식

말 그대로 HTTP에 Secure을 붙인것이 HTTPS이다. 더 보안적으로 강화된 프로토콜이란 의미이다.

여기서 중요한게 TLS(SSL)이 나오는데, HTTPS는  HTTP와 다르게 암호화를 하기 떄문에 암호화를 위한 TLS를

사용하기 떄문이다. 

 

클라이언트가 서버에 응답요청을 할 때 신뢰할 수 있는 서버인지 확인하고 암호화를 하는  TLS방식을

거치기 때문에 중간에 데이터가 탈취 당하여도 암호화 되어있어 바로 알아볼 수도 없다.

 

HTTPS를 사용하는 이유

  1. 기밀성
    1. 인터넷과 같은 공공 매체에서 두 참여자 간의 통신을 보호
      -암호화를 하기 때문에
  2. 무결성
    1. 변조되지 않은 정보로 목적지에 도달하게 함
      -도착한 내용을 복호화도 하기 떄문에 조작할 수 없다.
  3. 인증
    1. 웹사이트의 진위 여부를 확인 할 수 있음
      -연결 과정에서 신뢰된 사이트인지 확인함
  4. 검색 앤진 최적화
    사용자들이 안전한 페이지를 찾는 경향이 있고 가속화 된 모바일 페이지(AMP: Acceleated Mobile Page)도
    https 프로토콜만 지원하기에 SEO에 이점이 있다.

 

이러한 이유로 HTTPS는 보안에 유리함으로 결제나 비밀번호를 사용하는 웹 사이트에서는

HTTPS를 거의 무조건 사용하게 된다. 추가적으로 웹페이지로 화상통화 같은걸 하면 말하기 

기능이 필요하게 되면 무조건 HTTPS를 이용하게 되어있다.

 

물론 HTTP에 비해 단점도 존재한다.

HTTPS는 암호화를 거치기 때문에  암호화를 거치지 않는 HTTP에 비해 느리다. (물론 오늘날에는

하드웨어와 소프트웨어의 발달로 차이를 거의 못느낀다고 한다.)

그리고 인증서를 발급해야 함으로 유지하는데 추가적인 비용이 발생한다.

이는 TLS를 설명하면서 말하겠다.

 

 

 

 

그리고 추가적으로 HTTP와 HTTPS는 요청에 따라 응답의 성패를 알려주는 코드도 주는데

응답코드

1XX Informational(정보) 정보 교환.

2XX Success(성공) 데이터 전송이 성공적으로 이루어졌거나, 이해되었거나, 수락되었음.

3XX Redirection(방향 바꿈) 자료의 위치가 바뀌었음.

4XX Client Error(클라이언트 오류) 클라이언트 측의 오류. 주소를 잘못 입력하였거나 요청이 잘못 되었음.

5XX Server Error(서버 오류) 서버 측의 오류로 올바른 요청을 처리할 수 없음.

 

이 있다. 우리가 페이지를 찾을 수 없습니다 라는 오류를 웹을 보다보면 가끔 보게되는데

이 오류가 404 Not Found이다. 클라이언트에게 주소 요청을 받았는데 그 서버를 못찾았기에 나오는 오류다.

 

추가적으로

인증서의 종류에는 : 싱글 도메인, 멀티플 도메인 ,와일드카드 SSL 있다.

싱글 도메인 인증서: 인증서를 한개의 도메인 또는 그 서브도메인을 위해서 발행하는 것이고

멀티플 도메인 인증서: 통합 커뮤니케이션이라고도 불리며, 메인 도메인 이름을 비롯해 최대 99개 까지의 대체 도메인 이름을 보호 할 수 있게 해주는 것이다.

와일드카드 인증서: 웹 사이트 URL는 물론이고 서브 도메인도 무제한으로 보호 할 수 있는 인증서라고 한다.

 

https://hyeran-story.tistory.com/159 참고하기 좋은 사이트