본문 바로가기

CS지식

[Network] 웹 통신 기초지식

반응형

1. HTTP와 HTTPS


HTTP (Hypertext Transfer Protocol)

HTTP는 웹에서 정보를 주고받는 기본적인 프로토콜로써

클라이언트 (주로 웹 브라우저) 와 서버 간의 통신 방식을 정의함.

 

주요 특징

텍스트 기반 프로토콜
상태를 저장하지 않는 (Stateless) 프로토콜
기본적으로 80번 포트 사용

 

Stateless : 상태 비기반

예시) 아파트입구 경비실에서 들어올때도 검사하고 나갈때도 검사

 

Stateful : 상태 기반

예시 ) 신분증 제출하고 출입증 받아가는 느낌


HTTPS (HTTP Secure)

HTTPS는 HTTP의 보안 강화 버전

SSL/TLS 프로토콜을 사용하여 통신을 암호화합니다.

 

주요 특징

1. 데이터 암호화로 보안성 향상
2. 기본적으로 443번 포트 사용
3. 인증서( SSL )를 통한 신뢰성 검증

 

핵심 차이점

1. 보안 : HTTPS는 암호화를 통해 데이터를 보호
2. SEO( 검색 엔진 최적화 ) : 검색 엔진은 HTTPS 웹사이트를 선호
3. 성능 : HTTPS가 약간의 오버헤드 발생 가능

 

오버헤드 : 어떤 처리를 하기 위해 들어가는 간접적인 처리시간/메모리 등 자원을 말함.



2. HTTP 요청/응답 헤더


HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 합니다.

 

주요 요청 헤더

- 'Host': 요청하는 호스트와 포트 번호
- 'User-Agent' : 클라이언트 애플리케이션 정보
- 'Accept' : 클라이언트가 처리 가능한 컨텐츠 타입
- 'Cookie' : 서버에 의해 이전에 저장된 쿠키
- 'Authorization' : 인증 토큰 정보

 

주요 응답 헤더

- 'Content-Type' : 리소스의 미디어 타입
- 'Content-Length' : 응답 본문의 길이
- 'Set-Cookie' : 클라이언트에 쿠키 설정
- 'Cache-Control' : 캐싱 메커니즘 지정

핵심 포인트
헤더는 메타데이터를 전달하는 중요한 수단
요청과 응답의 특성에 따라 적절한 헤더 사용이 중요

 

 

 

3. HTTP와 HTTPS 동작 과정


HTTP 동작 과정

1. 클라이언트가 서버에 HTTP 요청 전송
2. 서버가 요청을 처리
3. 서버가 클라이언트에 HTTP 응답 전송
4. 클라이언트가 응답을 처리 (예: 웹 페이지 렌더링)

 


HTTPS 동작 과정 ( SSL/TLS 핸드셰이크 포함 )

1. 클라이언트가 서버에 연결 요청 ( ClientHello )
2. 서버가 인증서와 공개키 전송 ( ServerHello, Certificate )
3. 클라이언트가 인증서 검증 및 세션키 생성
4. 클라이언트가 세션키를 서버의 공개키로 암호화하여 전송
5. 서버가 세션키를 복호화
6. 이후 통신은 세션키를 사용한 대칭키 암호화로 진행

 

 

핵심 포인트

- HTTPS는 추가적인 보안 계층으로 인해 초기 연결 시간이 약간 더 소요될 수 있음
- SSL/TLS 핸드셰이크는 안전한 통신 채널 구축을 위한 핵심 과정

 


4. CORS (Cross-Origin Resource Sharing)


CORS는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제

 

주요 개념

- 출처(Origin): 프로토콜, 도메인, 포트의 조합
- 동일 출처 정책(Same-Origin Policy): 기본적으로 다른 출처의 리소스 요청을 제한
- CORS 헤더: 서버가 리소스 공유를 허용할 출처를 지정

 

 

CORS 동작 과정

1. 브라우저가 다른 출처로 요청을 보낼 때 Origin 헤더 포함
2. 서버가 Access-Control-Allow-Origin 헤더로 허용할 출처 지정
3. 브라우저가 응답 헤더를 확인하여 요청 허용 여부 결정

 

핵심 포인트

- 보안을 위한 중요한 메커니즘
- 서버 측에서 적절한 CORS 설정이 필요
- 개발 시 CORS 오류는 흔히 발생하는 문제이므로 이해가 중요

 

 

 5. GET 메서드와 POST 메서드


HTTP 프로토콜에서 가장 많이 사용되는 두 가지 메서드입니다.

 

GET 메서드

- 주로 데이터를 요청하고 받아오는 데 사용
- URL에 파라미터가 노출됨
- 캐시 가능
- 북마크 가능
- 데이터 길이에 제한 있음

 

POST 메서드

- 주로 데이터를 서버로 제출하는 데 사용
- 요청 본문에 데이터를 포함
- 캐시 불가능 (일반적으로)
- 북마크 불가능
- 데이터 길이에 제한 없음

 

핵심 차이점

1. 보안: POST가 상대적으로 더 안전 (데이터가 URL에 노출되지 않음)
2. 멱등성: GET은 멱등 (여러 번 호출해도 같은 결과), POST는 비멱등
3. 사용 목적: GET은 데이터 조회, POST는 데이터 제출에 주로 사용

 

 

 

6. REST와 RESTful의 개념


REST (Representational State Transfer)

REST는 웹 서비스를 위한 소프트웨어 아키텍처 스타일입니다.

 

주요 특징

- 자원(Resource)을 URI로 표현
- 자원에 대한 행위를 HTTP 메서드로 표현
- 무상태성 (Stateless)
- 캐시 가능성
- 계층화 시스템

 

 

RESTful

RESTful은 REST 아키텍처의 제약 조건을 준수하는 시스템을 의미

 

RESTful API 설계 원칙

1. 자원을 명사로, 행위를 HTTP 메서드로 표현
2. 계층적 구조로 URI 설계
3. 버전 관리
4. 적절한 HTTP 상태 코드 사용

 

핵심 포인트

- REST는 개념, RESTful은 그 개념을 실제로 적용한 시스템
- REST 원칙을 따르면 확장성, 유연성, 독립성이 향상됨
- 모든 웹 API가 완전히 RESTful할 필요는 없으나, 원칙을 이해하고 적용하는 것이 중요

 

 

반응형