목록분류 전체보기 (31)
가능세계
HTTP 헤더는 클라이언트와 서버가 HTTP 요청-응답 프로세스 중에 정보를 교환하는 수단입니다. 전송에 필요한 모든 부가적인 정보를 전달할 수 있도록 해줍니다. 이번 포스팅에서는 표현 헤더에 대해 알아봅시다. 1. 표현 헤더(Representation Header) 1-1. 표현이란 무엇을 의미하나요? 2014년에 HTTP 스펙이 개정되면서 엔티티 개념 대신 표현을 사용하기 시작합니다. 표현은 요청이나 응답에서 전달할 실제 데이터를 말합니다. 참고로 표현 헤더(Representation Metadata)와 표현 데이터(Representation Data)를 합쳐서 표현이라고 합니다. 1-2. 왜 표현이라고 하나요? 그런데 왜 표현이라고 지칭할까요? 바로, 서버가 보낼 리소스가 어떤 식으로 표현되어 있는..
HTTP 상태 코드란 무엇인가요? HTTP 상태 코드(HTTP Status Code)는 클라이언트에게 HTTP 요청의 처리 상태를 알려주는 서버의 응답(Response) 정보입니다. 상태 코드에는 어떤 것들이 있나요? 1xx(Informational): 요청이 수신되어 처리 중 2xx(Successful): 요청 정상 처리 3xx(Redirection): 요청을 완료하려면 추가 행동이 필요 4xx(Client Error): 클라이언트 오류로 서버가 요청을 수행할 수 없음 5xx(Server Error): 서버 오류로 유효한 요청을 처리하지 못함 1. 1xx (Informational) 1xx 번대의 상태 코드들은 요청이 수신되어 처리 중이라는 의미입니다. 실무에서 잘 사용되지 않기 때문에 깊이 다뤄지는 ..
HTTP 메서드의 속성을 고려하여 어떻게 서버에 요청을 보내냐에 따라 API 설계, 복구 매커니즘, 캐시 최적화 등 설계 로직이 달라질 수 있습니다. HTTP 메서드의 속성인 안전성, 멱등성, 캐시 가능에 대해 알아봅시다. 1. 안전성(Safe) HTTP 메서드의 안전성이란, 해당 메서드를 여러번 호출해도 리소스가 변경되지 않는 성질을 말합니다. 1-1. 안전한 메서드에는 어떤 것이 있나요? 안전한 메서드: GET, HEAD, OPTIONS, TRACE 안전하지 않은 메서드: POST, PUT, PATCH, DELETE GET 메서드는 단순히 데이터를 조회하므로 해당 리소스를 변경하지 않기 때문에 안전합니다. 반면, POST, PUT, PATCH, DELETE 메서드는 여러 번 호출할 경우 데이터가 변경..
리소스에 특정 동작을 수행하고 싶다면 어떻게 해야 할까요? 예를 들어, 회원이라는 리소스를 조회하고, 등록하고, 수정하고, 삭제하는 등의 행위는 어떻게 구분할까요? 바로 HTTP 요청 메서드(Http Request Methods)를 이용합니다. 메서드에는 어떤 것들이 있을까요? 1. HTTP 메서드 종류를 살펴봅시다 리소스에 수행할 행동을 HTTP 요청 메서드로 정의할 수 있습니다. 각각의 메서드는 서로 다른 기능을 수행하지만, 일부는 서로 공유하기도 합니다. 1-1. 주요 메서드 GET : 존재하는 리소스에 대한 요청, 조회 POST : 요청 데이터 처리 주로 등록에 사용 PUT, DELETE의 기능도 수행 PUT : 존재하는 리소스에 대한 전체 변경 리소스를 대체하거나 해당 리소스가 없으면 생성 PA..
HTTP 메시지는 클라이언트와 서버 간에 데이터가 교환되는 방식입니다. 메시지는 두 가지 유형이 있습니다. 요청(request): 클라이언트가 서버로 전송하여 서버에서 작업을 실행하도록 요청하는 메시지입니다. 응답(response): 서버가 그 요청에 대한 답변을 클라이언트에게 제공하는 메시지입니다. 1. HTTP 메시지 구조 HTTP 요청과 응답 메시지의 구조는 서로 닮았으며, 그 구조는 다음과 같습니다. HTTP 메시지는 위에서부터 차례대로 시작 라인(Start Line), 헤더(Header), 공백 라인(Empty Line), 바디(Message Body)로 구성되어 있습니다. 시작 라인 시작 라인에는 실행되어야 할 요청, 혹은 수행에 대한 성공 여부가 기록되어 있습니다. HTTP 헤더 요청 또는 ..
1. HTTP란? HTTP(HyperText Transfer Protocol)는 클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 프로토콜입니다. 클라이언트가 특정 URL에 대한 요청을 보내면 서버는 요청된 데이터를 반환합니다. HTTP 메시지에 그야말로 모든 형태의 데이터(HTML, TEXT, IMAGE, JSON, XML...)를 전송할 수 있습니다. HTTP는 일반적으로 TCP/IP 통신 위에서 동작하며, 기본 포트는 80번입니다. 이제 HTTP의 통신 구조와 특징들에 대해 살펴봅시다. 2. HTTP의 통신 구조 2-1. 클라이언트-서버 구조로 동작합니다 HTTP는 클라이언트(Client)와 서버(Server) 구조로 되어 있습니다. 클라이언트란 요청(request)을 보내는 쪽을 의미..
웹페이지 내의 링크를 클릭하면 브라우저는 도메인의 포트로 TCP/IP 연결을 하고, URL이 제공하는 정보에 대해 서버에 HTTP 요청을 보냅니다. URL에는 어떤 정보가 포함되어 있을까요? 먼저 URI에 대해 알아봅시다. 1. URI URI(Uniform Resource Identifier)는 인터넷에 있는 리소스를 식별할 수 있는 통일된 방식입니다. 예를 들어 위치나 이름, 또는 둘 다를 기준으로 인터넷에서 자원을 식별하는 데 사용되는 문자열이라고 할 수 있습니다. Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원. 제한 없이 URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는 데 필요한 정보 이렇게 생각해봅시다. URI는 우리가 연락하려는 사람을 식별하기..
UDP(User Datagram Protocol)는 사용자 데이터그램 프로토콜로, 데이터그램 방식을 사용하는 프로토콜입니다. 1. UDP는 단순하고 빠릅니다 TCP와 같은 레벨의 프로토콜이지만, UDP는 TCP보다 훨씬 단순합니다. 단순히 패킷을 주고받기 때문에 데이터의 정확성 및 전달 순서를 보장하지는 않습니다. 다만, 양방향 연결(Handshake) 과정이 필요하지 않아 전송 속도가 빠르고, 패킷을 효율적으로 전송할 수 있다는 장점이 있습니다. 이러한 특징 때문에 비디오 스트리밍, VoIP, 온라인 게임 등에서 UDP를 사용합니다. TCP에 비해 신뢰성이 낮은 편이나, 개발자가 애플리케이션에서 구현을 어떻게 하느냐에 따라서 TCP와 비슷한 수준의 기능을 가질 수 있습니다. 2. TCP vs UDP 비..
1. TCP는 연결 지향 프로토콜입니다 TCP는 연결 지향 프로토콜로, 두 장치 간에 안정적인 연결을 설정합니다. 통신을 시작할 때는 3-Way, 통신을 마칠 때는 4-Way Handshake 과정을 거치게 됩니다. TCP/IP를 사용하여 패킷을 전송하는 과정을 단계별로 살펴봅시다. 2. TCP 연결 프로세스 1단계: 연결 설정하기 (3-Way Handshake) 두 컴퓨터가 TCP를 통해 서로 데이터를 보내려면 먼저 3-Way Handshake를 사용해 연결을 설정해야 합니다. 클라이언트는 연결 요청 메시지인 SYN(❔) 패킷을 서버에게 보냅니다. 서버는 클라이언트에게 연결 수락 응답 메시지인 ACK(👍) 패킷과 SYN(❔) 패킷을 보냅니다. 이 단계가 완료되면 클라이언트에서 서버로의 연결이 설정됩니다..
오늘날 인터넷 통신의 대부분은 패킷 통신으로 이루어집니다. 패킷 통신 규약 중 하나인 TCP/IP는 각각 전송 제어 프로토콜과 인터넷 프로토콜을 아울러 지칭하는 용어입니다. IP(Internet Protocol)는 패킷을 정확한 목적지 전송합니다. 다만 보내는 행위 자체에 집중하며, 데이터가 확실히 도착할 것이라는 약속은 하지 않습니다. IP에는 패킷의 상태를 관리하거나 기억하는 기능이 없기 때문에 패킷은 분실되거나 손상될 수 있고, 순서가 뒤바뀌거나 중복 전송 되는 등 불안정한 단점들이 존재합니다. [Network] IP(Internet Protocol)와 패킷(Packet) 이해하기 인터넷은 상호(inter) 연결된 네트(net)워크로, 컴퓨터들이 서로 통신 가능한 방대한 네트워크라 할 수 있습니다...