[KDT_AISEC] 6주차 - 웹 기초 개념

Gloomy·2024년 1월 24일
0

KDT_AISEC

목록 보기
13/25

웹의 개념


웹(World Wide Web)이란

1980년에 팀 버너스 리라는 영국의 소프트웨어 공학자에 의해 개발되었다. 초기 웹은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있게 고안된 정보 공간이었다.

웹의 발전

웹 브라우저

웹 브라우저는 웹 서버와 통신하며 HTML문서나 파일을 출력하는 GUI기반의 애플리케이션이다. HTTP를 이용하여 정보를 수신할 뿐만 아니라 웹 서버에 정보를 송신하기도 하며 사용자가 선택한 자원을 서버에 요청하고 그것을 해석하여 화면에 표시한다.

위 사진은 최초의 웹 브라우저이다.

웹의 동작과정

URL의 이해


URL(Uniform Resource Locator)

URL은 네트워크 상에서 웹 페이지, 이미지 등 리소스의 위치를 가리키는 표준 명칭이다. 서버의 자원 요청 시 사용된다.

URL 구조

  • Protocol
    프로토콜은 시스템 간의 통신 규약이다. ftp, mailto등 다양하지만 웹 통신은 HTTP/HTTPS를 가장 많이 사용한다
  • Domain
    도메인은 웹 서버의 이름이다. 예를 들면 naver.com, google.com등이 있다. IP주소를 직접 기입하여 접속할 수도 있다.
  • Port
    포트는 서비스가 실행되고 있는 문과 같다. HTTP는 기본 80번 포트, HTTPS는 기본 443번 포트를 사용한다.

  • Path
    요청하고자 하는 자원에 대한 경로이다.
  • Parameter
    &기호로 구분하며 keyvalue로 짝을 이룬 리스트이다.
  • Fragment
    #을 이용하여 이동을 원하는 요소의 id를 링크로 연결 시, 스크롤 이동 없이 해당 위치로 이동이 가능하다. 세부 항목에 대한 책갈피 역할로, 해당 요청을 서버에 전송하지는 않는다.

Encoding이란

컴퓨터는 문자를 인식할 수 없기 때문에 숫자로 변환하여 저장한다. 입력한 문자는 미리 정해진 기준인 문자셋을 기준으로 변환되며 문자열의 모양은 변환되지만 의미는 변하지 않는다.

URL 예약문자

URL에서 문법적인 의미를 가지고 있는 문자를 의미한다. 해당 문자를 예약 문자의 의미로 사용하고 싶을 경우 인코딩 후 사용한다.

HTTP 프로토콜


HTTP 프로토콜이란

HTTP 프로토콜은 웹 브라우저와 웹 서버(웹 애플리케이션 서비스)간의 통신을 위한 프로토콜이다.

HTTP Request(Header)

클라이언트의 요청에 대한 부가적인 정보로, 대소문자 구분없이 문자열 다음에 콜론(:)이 붙으며, 그 뒤에 오는 값은 헤더에 따라 다르게 명시한다.

  • Host: 요청하는 호스트에 대한 호스트명 및 포트번호
  • User-Agent: 사용자 웹 브라우저 종류 및 버전 정보
  • Accept: 클라이언트가 원하는 콘텐츠 타입 및 우선 순위 명시
  • Connection: 클라이언트와 서버 간 연결에 대한 옵션

HTTP Method란

클라이언트가 서버에게 사용자의 요청의 목적이나 종류를 알리는 수단이다. 대표적으로 GET, POST, PUT등이 있다.

  • GET
    GET은 특정한 리소스를 가져오도록 요청할 때 사용한다. URL에 파라미터를 그대로 전달하는 것이 특징이다.
  • POST
    POST는 주로 데이터를 등록하거나 수정할 때 사용한다. HTTP Body에 데이터를 실어 보내는 것이 특징이며, 보안적인 측면에서 GET에 비해 비교적 안전하기는 하지만 단순히 그 이유로 POST를 쓰는 것은 아니다. 데이터의 길이가 길어질 경우 URL의 최대 길이를 초과할 수 있기 때문에 Body에 넣는 방식으로 사용한다.

HTTP Response(Status Code)

HTTP Response패킷은 상태 코드를 포함하는데, 이 상태 코드들의 의미는 다음과 같다.

HTTPS


HTTPS 등장배경

HTTP프로토콜 자체는 암호화 통신이 아니기 때문에 도청, 위장, 데이터 변조 등의 공격이 쉽고 알아채기 힘들다. 따라서 암호화 통신의 필요성이 부각되면서 HTTPS프로토콜이 등장하였다.

HTTPSHTTPSSL인증서를 추가한 방식의 프로토콜이다. 보통 443번 포트를 사용하며 웹 브라우저의 urlhttps://로 시작한다는 점이 기존 HTTP와 다르다. 또한 공개키 암호 방식을 사용한다.

대칭키

대칭키는 암호화 키와 복호화 키가 동일한 암호화 방식을 뜻하는데, 계산 속도가 빠르다는 특징이 있지만, 키 관리가 번거롭고 키 교환을 해야 한다는 단점이 있다.

공개키

암호화 키와 복호화 키가 다른 암호화 방식이며 개인키와 공개키가 쌍을 이룬 형태이다. 키 교환이 불필요하며 키 관리가 수월하다는 장점이 있다. 그러나 대칭키 암호화 방식에 비하면 상대젹으로 느리다는 특징이 있다.

하이브리드 암호 시스템

대칭키 암호화 방식과 공개키 암호화 방식의 장점을 모아놓은 암호 시스템이다.

  • 암호화 과정
    평문을 대칭키로 암호화한 후 해당 대칭키를 수신자의 공개키로 암호화한다.
  • 복호화 과정
    수신자는 암호화된 키를 자신의 개인키로 복호화하여 대칭키로 암호화된 평문을 복호화한다.

SSL/TLS란

클라이언트/서버 환경에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜이다. 클라이언트가 접속한 서버가 안전한 서버임을 보장해준다.

  • SSL(Secure Socket Layer): 전자상거래 등 웹 보안을 위해 넷스케이프에서 개발하였지만 2014년 SSL3.0 사양에 취약점 발견
  • TLS(Transport Layer Security): SSL3.0을 기반으로 만들어진 인터넷 표준 프로토콜

SSL 인증서 발급 과정

HTTPS 접속 과정

profile
𝙋𝙤𝙨𝙨𝙤 𝙁𝙖𝙧𝙚!

0개의 댓글