hy30nq's blog

웹의 기초를 알아보자: HTTP부터 HTTPS, 그리고 SSL 인증서까지! 본문

ELITE HACKER bootcamp/Pre.web

웹의 기초를 알아보자: HTTP부터 HTTPS, 그리고 SSL 인증서까지!

hy30nq 2024. 3. 31. 15:11
728x90

안녕하세요! 오늘은 인터넷을 사용하면서 자주 듣게 되는 HTTP, HTTPS, 그리고 SSL 인증서에 대해 알아보려고 해요. 웹의 세계는 정말 신기한 정보들로 가득 차 있죠. 이런 기초적인 지식을 알고 있으면, 웹을 훨씬 더 안전하게 탐색할 수 있답니다. 그럼, 한 걸음씩 함께 걸어볼까요?

HTTP란?

HTTP는 HyperText Transfer Protocol의 약자로, 인터넷에서 데이터를 주고받는 규칙을 말해요. 예를 들어, 웹 브라우저와 서버가 통신할 때 사용되는 프로토콜이죠. 간단히 말해서, 웹사이트를 볼 때 사용되는 규칙이라고 생각하시면 돼요!

HTTP와 HTTPS의 차이

HTTPS는 HTTP에 Secure Socket Layer(SSL)이 추가된 것을 말해요. 주요 차이는 바로 '안전성'이에요. HTTPS는 데이터를 암호화해서 전송하기 때문에, 더 안전하답니다. 그래서 요즘은 대부분의 웹사이트가 HTTPS를 사용하고 있어요.

HTTP의 구조: 헤더와 바디

HTTP 메시지는 크게 헤더와 바디로 나뉘어요. 헤더에는 메시지에 대한 설명(예: 내용의 종류, 데이터 생성 날짜 등)이 들어있고, 바디에는 실제 전송하고자 하는 데이터가 담겨 있죠. 이 구조 덕분에 데이터를 효율적으로 주고받을 수 있어요.

헤더(Header)

  • 역할: 메시지에 대한 설명을 제공합니다. 즉, 데이터를 어떻게 처리할지에 대한 지침을 담고 있죠.
  • 구성요소:
    • 일반 헤더: 메시지 전체에 적용되는 정보, 예를 들어, 날짜, MIME 버전 등이 여기에 속해요.
    • 요청 헤더: 클라이언트가 서버에 요청할 때, 서버에 대한 추가 정보를 제공해요. 예를 들어, 사용 가능한 언어, 요청자의 웹 브라우저 종류 등이죠.
    • 응답 헤더: 서버가 클라이언트에 응답할 때, 추가적인 정보를 제공해요. 예를 들어, 서버의 유형, 콘텐츠 길이 등이 포함돼요.
    • 엔티티 헤더: 본문 데이터의 자원에 대한 정보를 제공해요. 콘텐츠의 종류, 데이터의 마지막 수정 날짜 등이 여기에 해당해요.

헤더는 이처럼 다양한 정보를 담고 있어서, 데이터를 어떻게 처리할지 결정하는 데 중요한 역할을 해요.

바디(Body)

  • 역할: 실제로 전송하고자 하는 데이터를 담고 있어요. 이 부분이 바로 사용자가 볼 수 있는 웹 페이지의 내용, 이미지, 비디오 등이 되는 거죠.
  • 특징: 바디는 헤더에 의해 어떻게 해석될지가 결정돼요. 예를 들어, 헤더에 'Content-Type: text/html'이라고 되어 있다면, 바디에 담긴 데이터는 HTML로 해석되어 웹 페이지로 표시되는 거죠.

HTTP 메시지의 이 두 부분, 헤더와 바디는 웹 통신에서 데이터를 효율적으로 주고받기 위해 필수적인 요소에요. 이 구조 덕분에 우리는 웹을 통해 정보를 쉽고 빠르게 교환할 수 있답니다.

HTTP 메서드의 종류

HTTP 메서드는 데이터를 주고받는 방식을 정의해요. 대표적으로는 GET, POST, PUT, DELETE 등이 있어요. 각각의 메서드는 서로 다른 목적을 가지고 있어요. 예를 들어, GET은 데이터를 요청할 때, POST는 데이터를 생성할 때 사용되죠.

HTTP 메서드의 종류와 사용 용도

1. GET

  • 용도: 서버로부터 정보를 조회할 때 사용합니다. 데이터를 가져오는 행위만 수행하고, 데이터를 변경하지는 않아요.
  • 예시: 뉴스 기사를 읽거나, 검색 결과를 조회할 때 사용돼요.

2. POST

  • 용도: 서버에 데이터를 전송하여 새로운 리소스를 생성할 때 사용합니다. 예를 들어, 회원가입, 글 작성 등에 사용돼요.
  • 특징: 데이터가 URL에 포함되지 않고 요청 바디를 통해 전송되기 때문에, GET 방식보다 더 많은 양의 데이터를 안전하게 전송할 수 있어요.

3. PUT

  • 용도: 서버에 존재하는 데이터를 업데이트할 때 사용합니다. 주로 전체 데이터를 교체할 때 사용돼요.
  • 특징: PUT은 idempotent하다는 특징을 가지고 있어요. 같은 요청을 여러 번 수행해도 최초 한 번 수행한 효과와 동일하다는 의미죠.

4. DELETE

  • 용도: 서버의 리소스를 삭제할 때 사용됩니다. 예를 들어, 회원 탈퇴나 글 삭제에 사용돼요.
  • 특징: 말 그대로 데이터를 삭제하는 작업이기 때문에 주의해서 사용해야 해요.

5. PATCH

  • 용도: 리소스의 일부분만 수정할 때 사용합니다. PUT과 비슷하지만, PATCH는 리소스의 일부만 변경한다는 점이 달라요.
  • 특징: 예를 들어, 사용자 프로필에서 닉네임만 변경하고 싶을 때 사용할 수 있어요.

6. HEAD

  • 용도: GET 메서드와 비슷하지만, 바디를 반환하지 않고 헤더 정보만 가져올 때 사용합니다. 웹 서버 정보나 상태 확인에 주로 사용돼요.
  • 특징: 데이터의 크기를 미리 확인하거나, 리소스가 존재하는지 여부만 확인하고 싶을 때 유용해요.

7. OPTIONS

  • 용도: 웹 서버에서 지원하는 메서드의 종류를 확인할 때 사용됩니다. CORS(교차 출처 리소스 공유)에서 사전 요청으로 사용되기도 해요.
  • 특징: 어떤 HTTP 메서드가 해당 리소스에 대해 허용되는지 확인할 수 있어요.

HTTP 상태 코드

서버의 응답 상태를 나타내는 코드에요. 예를 들어, '404 Not Found'는 요청한 페이지를 찾을 수 없을 때 나타나는 코드이고, '200 OK'는 요청이 성공적으로 처리되었음을 의미해요. 이 코드들은 문제 해결 시 중요한 단서를 제공하죠.

SSL 인증서란?

SSL(Secure Sockets Layer) 인증서는 웹사이트와 사용자 간의 정보를 암호화하는 기술이에요. 이 인증서 덕분에 개인정보, 카드 정보와 같은 민감한 데이터를 안전하게 전송할 수 있어요. 웹사이트가 SSL 인증서를 사용하고 있다면, 웹 주소가 'https://'로 시작된답니다.

 

오늘은 웹의 기초에 대해 함께 알아봤어요. 이 정보들이 웹을 이용하실 때 도움이 되었으면 좋겠어요. 웹을 안전하게 사용하는 것이 중요하니까요. 앞으로도 궁금한 점이 있다면 언제든지 물어보세요!

728x90