태그: HTTP
19편
-
API Rate Limiting 설계: 5가지 알고리즘 비교, Redis 분산 제한, 429·Retry-After
API Rate Limiting을 언어 무관으로 정리한 가이드. Fixed Window·Token Bucket 등 알고리즘 5종 비교, Redis 분산 제한, Nginx·미들웨어 적용, 429·Retry-After 규약까지 다룹니다.
-
WebSocket vs SSE vs 롱 폴링 | 실시간 통신 방식 비교
WebSocket, SSE, 롱 폴링을 통신 방향과 구현 복잡도, 프록시·방화벽 환경 기준으로 비교하고 Node.js 서버·클라이언트 코드로 구현해 봅니다. AI 응답 스트리밍에 SSE를 쓰는 예시, RFC 6455 업그레이드 핸드셰이크와 프레임 구조, Ping/Pong 하트비트도 다룹니다.
-
REST API 설계: HTTP 메서드 의미론·멱등성, 리처드슨 성숙도, HATEOAS, 버전 관리
안전성·멱등성·캐시 가능성으로 HTTP 메서드를 구분하고, PUT과 PATCH의 차이, Idempotency-Key로 POST 재시도를 안전하게 만드는 방법을 설명합니다. 리처드슨 성숙도 모델, HAL 같은 HATEOAS 형식, 콘텐츠 협상과 API 버전 관리도 다룹니다.
-
CORS 에러를 제대로 이해하기: 동일 출처 정책, 프리플라이트, credentials와 헤더 해석
CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)는 서버가 “이 출처의 스크립트가 응답 본문을 읽어도 된다”고 브라우저에 알려 주는 HTTP 헤더 규약입니다.
-
Bun 런타임 내부 구조 심화 — JavaScriptCore·Zig FFI·번들러·HTTP·프로덕션
Bun이 V8 대신 JavaScriptCore를 쓰는 이유, bun:ffi로 C ABI를 직접 호출하는 방식과 N-API 애드온의 관계, 트랜스파일러와 Bun.build의 역할 분담, Bun.serve와 Node libuv 서버의 구조 차이를 설명합니다.
-
Axios 실전: 인스턴스·인터셉터 설계와 401 토큰 갱신 무한 루프 막기
Axios 인스턴스와 요청·응답 인터셉터로 토큰 주입과 공통 에러 처리를 구성하고, 401 응답 뒤 토큰 갱신이 무한 루프에 빠지지 않게 하는 패턴, AbortController 요청 취소, TypeScript 타이핑을 예제로 다룹니다.
-
HTTP/1.1에서 HTTP/3까지: HOL 블로킹, 멀티플렉싱, 헤더 압축, QUIC과 0-RTT
HTTP/1.1의 HOL 블로킹이 왜 생기는지, HTTP/2가 멀티플렉싱과 HPACK으로 무엇을 해결했고 TCP 계층에서 남은 한계를 HTTP/3와 QUIC이 UDP 위에서 어떻게 풀었는지 TLS 핸드셰이크와 함께 설명합니다.
-
Go context로 타임아웃·취소 처리하기 | 실전 패턴 가이드
Go의 context.WithTimeout으로 DB와 외부 API 호출에 상한을 걸고, WithCancel로 한 단계가 실패하면 나머지 워커를 멈추고, HTTP 서버에서 요청 컨텍스트와 Shutdown 컨텍스트를 따로 쓰는 방법을 코드로 보여줍니다. 세 API의 선택 기준도 다룹니다.
-
HTTP vs FTP vs SSH 프로토콜 비교 | 용도·보안·파일 전송 선택 가이드
HTTP(S), FTP/FTPS, SSH(SFTP·SCP)의 포트·인증·암호화 방식과 채널 구조 차이를 비교하고, 웹 API·대용량 파일 전송·원격 서버 관리 상황별로 어떤 프로토콜을 고를지와 FTP에서 SFTP나 객체 스토리지로 옮기는 절차를 curl·OpenSSH 예제로 다룹니다.
-
Python REST API | Flask/Django로 API 서버 만들기
Python으로 REST API를 만드는 방법. RESTful 설계 원칙, Flask CRUD API, Django REST Framework의 시리얼라이저·ViewSet·라우팅, JWT 인증과 권한, 에러 응답 처리까지 예제로 정리합니다.
-
[Go 심화 #09] context.Context로 타임아웃·취소·우아한 종료 다루기 — C++와의 비교
HTTP 요청이 끊겼는데 DB 쿼리가 계속 도는 문제를 context.Context로 막는 방법을 설명합니다. 루트와 파생 컨텍스트, 파이프라인 취소 전파, 오래 도는 고루틴 멈추기, 신호를 받아 Shutdown하는 우아한 종료를 C++ stop_token과 비교하며 다룹니다.
-
HTTP 프로토콜: HTTP/1.1·HTTP/2·HTTP/3 차이, 연결 관리, 캐싱, 보안 실전
HTTP 메서드의 안전성과 멱등성, 상태 코드와 주요 헤더, HTTP/1.1·2·3의 프레이밍과 HOL 블로킹 차이, Keep-Alive와 연결 풀, Cache-Control·ETag 기반 캐시 검증을 프로덕션 관점으로 설명합니다.
-
C++로 REST API 서버 만들기: 라우터·미들웨어 체인·JWT 인증·요청 검증
Express.js처럼 쓰기 쉬운 REST API 서버를 C++로 만들면서 라우터, 로깅·CORS 미들웨어 체인, Request·Response 클래스, JWT 인증, 요청 검증과 에러 핸들러, Swagger 문서를 차례로 구현합니다. CORS preflight 실패와 토큰 만료 대처도 다룹니다.
-
[Go 2주 완성 #08] Day 14: 실전 미니 프로젝트 - REST API 서버 구축
앞선 편에서 익힌 구조체, 인터페이스, 에러 처리, 고루틴, 테스트를 묶어 net/http만으로 할 일 관리 REST API 서버를 만듭니다. 프로젝트 구조, 저장소 인터페이스, 핸들러와 미들웨어, 백그라운드 작업, 핸들러 테스트, Docker 배포까지 따라갑니다.
-
C++에서 HTTP 제대로 파싱하기: 요청·응답 구조, 헤더 처리, 청크 인코딩, Beast 파서
HTTP 요청을 손으로 파싱하다 빠지는 함정에서 출발해 요청 라인·헤더·본문 구분, Content-Length 기반 읽기, 청크 디코딩을 직접 구현해 봅니다. 이어서 Boost.Beast 파서로 옮기고 body limit, Keep-Alive, CRLF 인젝션 문제를 다룹니다.
-
C++ HTTP 클라이언트 직접 만들기: TCP 소켓부터 Boost.Beast, 연결 풀, 타임아웃까지
C++로 HTTP 클라이언트를 구현하는 방법. HTTP 기초와 TCP 연결, Boost.Beast로 REST API 호출하기, 연결 풀과 Keep-Alive, 타임아웃 처리, 자주 나는 에러와 성능 벤치마크를 다룹니다.
-
C++로 HTTP 클라이언트·서버 구현하기: 파서, Beast, Keep-Alive, 청크 인코딩, 타임아웃
TCP로 받은 바이트가 요청 단위로 끊겨 오지 않는 문제에서 출발해 HTTP 파서를 직접 구현하고 Boost.Beast로 클라이언트와 비동기 서버를 만듭니다. Keep-Alive 연결 풀, 청크 인코딩, 타임아웃, body limit 초과와 CRLF 인젝션도 다룹니다.
-
C++ 초경량 HTTP 웹 프레임워크 바닥부터 만들기
Express나 FastAPI 같은 사용감을 C++로 최소 구현하면서 요청 파싱, 경로 파라미터를 지원하는 라우터, 로깅·공통 헤더·인증 미들웨어 체인, 응답 직렬화를 차례로 만듭니다. Hello World 서버에서 라우팅과 미들웨어를 합친 예제까지 빌드해 봅니다.
-
Boost.Beast로 REST API 서버 만들기: 정규식 라우터, 미들웨어 체인, JSON, Graceful Shutdown
Boost.Beast로 REST API 서버를 만드는 방법을 정리합니다. 정규식 기반 Router, 로깅·CORS·인증 미들웨어 체인, nlohmann/json 요청 처리, 전역 에러 핸들러부터 Graceful Shutdown·Docker 배포까지 실전 예제로 다룹니다.