Http Protocol
Q. HTTP 웹 프로토콜에 대해서 설명해주세요.
A. HTTP(하이퍼 텍스트 전송 프로토콜)웹에서 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜입니다. Http는 상태를 유지하지 않는(stateless) 프로토콜로, 클라이언트가 서버에 요청(request)을 보내면 서버는 이에 대한 응답(response)을 보내고 연결을 종료합니다. 이를 통해 HTML 문서, 이미지, JSON 등 다양한 리소스를 주고받을 수 있습니다.
주요 메서드로는 GET
(데이터 조회), POST
(데이터 전송 및 생성), PUT
(데이터 수정), DELETE
(데이터 삭제) 등이 있으며, 각 메서드는 특정한 목적에 맞게 사용됩니다. HTTP는 기본적으로 텍스트 기반이지만, 보안이 필요한 경우 SSL/TLS와 결합하여 HTTPS
로 암호화된 통신을 할 수 있습니다.
Q. PUT과 PETCH 매핑은 어떠한 차이점이 있나요?
A. PUT
과 PATCH
는 모두 리소스를 수정하는 데 사용되지만, 그 방식에 차이가 있습니다.
PUT
: 리소스의 전체를 교체하거나 수정할 때 사용됩니다. 클라이언트가 서버에 전달한 데이터로 리소스 전체를 덮어쓰므로, 누락된 필드는 기본값이나 null로 설정될 수 있습니다. 즉, 리소스의 완전한 대체를 의미합니다.PATCH
: 리소스의 일부를 수정할 때 사용됩니다. 클라이언트가 특정 필드만 수정하고 싶을 때, 해당 필드만 보내면 서버가 나머지 필드를 유지한 채로 변경사항만 반영합니다. 부분 업데이트에 더 적합한 방식입니다. 따라서 PUT은 전체 데이터를, PATCH는 부분 데이터를 수정하는 데 사용된다고 이해하면 됩니다.
Q. HTTP 1.1과 2, 3등 뒤에 숫자가 붙어있는 것을 볼 수 있는데 무엇을 의미하나요?
A. HTTP 뒤에 붙는 숫자는 프로토콜의 버전을 나타냅니다. 각 버전마다 성능 개선과 기능 추가가 이루어졌습니다.
HTTP/1.1
: 가장 오랫동안 사용된 버전으로, 지속적인 연결을 유지하는 Persistent Connection과 Chunked Transfer Encoding 등을 도입해 성능을 개선했습니다. 그러나 요청과 응답을 순차적으로 처리해야 하므로 병목 현상이 발생할 수 있습니다.HTTP/2
: 성능 향상을 위해 등장한 버전으로, 멀티플렉싱을 통해 하나의 연결에서 여러 요청과 응답을 동시에 주고 받을 수 있습니다. 이를 통해 대기 시간을 줄이고, 헤더 압축과 서버 푸시 기능도 추가되어 네트워크 지원을 더 효율적으로 사용합니다.HTTP/3
: 최신 버전으로, 전송 계층에서 TCP 대신 QUIC(UDP 기반 프로토콜)을 사용합니다. 이를 통해 연결 설정 시간이 단축되고, 패킷 손실 시에도 개별 스트림만 재전송하여 성능이 향상됩니다. 특히 모바일 환경에서의 연결 안정성과 속도가 개선되었습니다. 각 버전은 웹의 속도, 안전성, 보안을 개선하기 위해 발전해왔습니다.
Last updated