1. http 헤더 구조
HTTP(하이퍼텍스트 전송 프로토콜)는 웹에서 데이터를 주고받기 위한 프로토콜이며, HTTP 메시지는 클라이언트와 서버 간 통신을 정의합니다. HTTP 헤더는 이러한 메시지의 일부로, 메시지에 대한 정보를 포함하고 있습니다. 여기에는 요청과 응답의 모두에 적용되는 일반 헤더와 엔터티 헤더가 있습니다.
**1. 일반 헤더:**
- **Cache-Control:** 캐시 동작을 지시하는 지시자를 제공합니다.
- **Connection:** 현재의 연결에 대한 옵션을 설정하거나, 다양한 연결 옵션을 표시합니다.
- **Date:** 메시지가 생성된 날짜와 시간을 포함합니다.
- **Pragma:** HTTP/1.0과의 하위 호환성을 위해 사용되었지만, 일반적으로는 Cache-Control로 대체됩니다.
- **Transfer-Encoding:** 메시지의 전송 인코딩을 나타냅니다.
- **Upgrade:** 다른 프로토콜로 업그레이드하기 위한 요청을 나타냅니다.
- **Via:** 메시지가 전송되는 중간에 거치는 프록시 서버 정보를 제공합니다.
- **Warning:** 리소스에 대한 경고를 나타냅니다.
**2. 요청 헤더:**
- **Host:** 요청된 리소스의 호스트와 포트 번호를 제공합니다.
- **User-Agent:** 클라이언트 애플리케이션에 대한 정보를 제공합니다.
- **Accept:** 클라이언트가 처리 가능한 미디어 타입을 나타냅니다.
- **Accept-Language:** 클라이언트가 선호하는 언어를 나타냅니다.
- **Accept-Encoding:** 클라이언트가 지원하는 인코딩 방식을 나타냅니다.
- **Referer:** 현재 요청된 페이지의 이전 페이지 주소를 나타냅니다.
- **Cookie:** 서버에 의해 설정된 쿠키를 포함합니다.
**3. 응답 헤더:**
- **Location:** 리다이렉션된 리소스의 위치를 나타냅니다.
- **Server:** 웹 서버에 대한 정보를 포함합니다.
- **WWW-Authenticate:** 클라이언트에게 인증을 요청하기 위한 정보를 나타냅니다.
- **Set-Cookie:** 클라이언트에게 새로운 쿠키를 설정하도록 지시합니다.
- **Content-Type:** 응답 본문의 미디어 타입을 나타냅니다.
- **Content-Length:** 응답 본문의 길이를 나타냅니다.
- **Expires:** 리소스의 유효 기간을 나타냅니다.
이 외에도 다양한 헤더가 있으며, 특정 상황이나 필요에 따라 사용됩니다. HTTP 헤더는 클라이언트와 서버 간의 효과적인 통신을 가능하게 하고, 웹 애플리케이션의 동작을 제어하는 데 중요한 역할을 합니다.
2. http 와 https 차이점
HTTP(하이퍼텍스트 전송 프로토콜)와 HTTPS(하이퍼텍스트 전송 프로토콜 보안)는 모두 웹에서 데이터를 전송하는 데 사용되는 프로토콜이지만, 그들 간에 중요한 차이가 있습니다.
**1. 보안 측면:**
- **HTTP:** 데이터가 암호화되지 않고 평문으로 전송됩니다. 이는 중요한 정보를 전송할 때 보안 문제가 발생할 수 있습니다.
- **HTTPS:** 데이터는 SSL(보안 소켓 계층) 또는 그 후속인 TLS(전송 계층 보안) 프로토콜을 사용하여 암호화되어 전송됩니다. 따라서 중간에서 데이터를 가로채더라도 해독하기 어려워지며, 보안이 강화됩니다.
**2. 포트 번호:**
- **HTTP:** 기본적으로 80번 포트를 사용합니다.
- **HTTPS:** 기본적으로 443번 포트를 사용합니다.
**3. 인증서 사용:**
- **HTTP:** 인증서를 요구하지 않기 때문에, 통신 상대방을 확인할 수 없습니다.
- **HTTPS:** SSL/TLS 인증서를 사용하여 서버의 정체성을 확인하고, 클라이언트와 서버 간의 통신이 안전함을 보장합니다.
**4. 검색 엔진 최적화(SEO):**
- **HTTP:** 보안이 적용되지 않기 때문에, 일부 검색 엔진은 HTTPS를 사용하는 웹 사이트를 더 높게 평가할 수 있습니다.
- **HTTPS:** 보안이 강화되어 있어 검색 엔진에서 높은 순위를 받을 수 있습니다.
**5. 사용 목적:**
- **HTTP:** 주로 정보를 전송하는 데 사용되며, 보안이 크게 중요하지 않은 경우에 적합합니다.
- **HTTPS:** 개인 정보, 금융 거래, 로그인 정보와 같은 민감한 데이터를 전송할 때 사용되며, 보안이 필요한 상황에서 권장됩니다.
최근에는 웹 보안을 강화하기 위해 많은 웹 사이트가 HTTPS를 사용하고 있습니다. 브라우저들도 HTTPS를 사용한 웹 사이트를 더 안전하게 표시하고, 사용자에게 안전하지 않은 연결에 대한 경고를 표시하기 시작했습니다.
'Network' 카테고리의 다른 글
RAID란? (0) | 2024.03.11 |
---|---|
스위치 허브 라우터 게이트웨이 개념 (0) | 2024.03.10 |
포트(port) 개념 및 종류 (0) | 2024.03.07 |
이더넷(Ethernet) (0) | 2023.03.31 |
인터넷(Internet), 인트라넷(Intranet), 엑스트라넷(Extranet) (0) | 2023.03.30 |