4. HTTP에 대해 설명해 주세요. #5
Replies: 1 comment
-
HTTP란? HTTP는 클라이언트가 요청하기 위해 연결을 연 다음 응답을 받을때 까지 대기하는 전통적인 클라이언트-서버 모델을 따르며 무상태 프로토콜이며, 서버가 두 요청 간에 어떠한 데이터(상태)도 유지하지 않습니다. 핵심 요소HTTP는 기본적으로 요청/응답 구조로 되어있다. 통신 방식클라이언트가 HTTP Requset를 서버에 보내면 서버는 HTTP Response를 보내는 구조이며, 모든 통신이 요청과 응답으로 이뤄진다. 구조HTTP Request 메시지는 크게 3부분으로 구성된다.
아래는 HTTP Request 메시지입니다. POST /idempotence HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 15
Content-Type: application/json
Host: localhost:8080
User-Agent: HTTPie/3.2.3
{
"name": "KIM"
}
아래는 Request에 대한 HTTP Response 메시지입니다. HTTP/1.1 201
Connection: keep-alive
Content-Type: application/json
Date: Wed, 17 Jul 2024 11:40:07 GMT
Keep-Alive: timeout=60
Transfer-Encoding: chunked
{
"id": 1,
"name": "KIM"
} Response에서는 Request와 다르게 Start Line에서 HTTP Method, Request Target대신 Http Status Code를 전송합니다. 연결 종류HTTP는 어떻게 연결하느냐에 따라서 다음과 같이 분류할 수 있습니다.
4.1. 공개키와 대칭키에 대해 설명해 주세요.암호화란?암호화는 암호화 알고리즘과 암호화 키를 이용해서 데이터를 남들이 해석할 수 없도록 만드는 것 대칭키 ( Symmetric Key ) 방식암호화 키와 복호화 키가 같은 방식 키를 보내지 않으면 복호화를 할 수 없고, 키를 보내면 도중에 탈취될 가능성이 있는데 이를 키 배송 문제(key distribution problem)라고 한다. 이와 같이 중간에서 탈취될 가능성이 존재하기 때문에 공개키 방식이 나오게 되었습니다. 공개키 ( Public Key ) 방식공개키, 개인키가 하나의 묶음으로 동작한다. 공캐키 암호화 전자 서명 공개키는 왜 공개해도 되는가?
4.2. 왜 HTTPS Handshake 과정에서는 인증서를 사용하는 것 일까요?
인증서를 사용하는 이유
4.3. SSL과 TLS의 차이는 무엇인가요?
SSL ( Secure Sockets Layer ) TSL ( Transport Layer Security ) 4.3.1. SSL/TLS 핸드셰이크SSL 핸드셰이크는 명시적 연결인 반면 TLS 핸드셰이크는 암시적 연결입니다. SSL 핸드셰이크 프로세는 TLS 프로세스보다 단계가 더 많았습니다. TLS는 추가 단계를 제거하고 총 암호 그룹 수를 줄여서 프로세스 속도를 높였습니다. 4.3.2. 알림 메시지SSL 및 TLS 프로토콜은 알림 메시지를 통해 오류와 경고를 전달합니다. SSL에는 경고와 치명적이라는 두 가지 알림 메시지 유형만 있습니다. 경고 알림은 오류가 발생했지만 연결을 계속할 수 있음을 나타냅니다. 치명적 알림은 연결을 즉시 종료해야 함을 나타냅니다. 또한 SSL 알림 메시지는 암호화되지 않습니다. TLS에는 닫기 알림이라는 추가 알림 메시지 유형이 있습니다. 닫기 알림은 세션 종료를 알립니다. 또한 TLS 알림은 추가 보안을 위해 암호화됩니다. 4.3.3. 메시지 인증SSL과 TLS 모두 메시지의 진본성과 무결성을 확인하기 위한 암호화 기술인 메시지 인증 코드(MAC)를 사용합니다. 레코드 프로토콜은 보안 키를 사용하여 MAC을 고정 길이 코드로 생성하고 원본 메시지에 첨부합니다. SSL 프로토콜은 MAC 생성에 MD5 알고리즘(현재는 구식)을 사용합니다. TLS는 더 복잡한 암호화와 보안에 해시 기반 메시지 인증 코드(HMAC)를 사용합니다. 4.3.4. 암호 그룹암호 그룹은 브라우저와 서버 간의 정보를 암호화하기 위한 키를 생성하는 알고리즘 모음입니다. 일반적으로 암호 그룹에는 키 교환 알고리즘, 검증 알고리즘, 대량 암호화 알고리즘 및 MAC 알고리즘이 포함됩니다. 보안 문제로 인해 TLS의 여러 알고리즘이 SSL에서 업그레이드되었습니다.
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
All reactions