Computer Science/HTTP
[HTTP] HTTP의 멱등성 · 안정성 · 캐시성
HTTP 메서드의 속성 주요 HTTP Method인 GET / POST / PUT / PATCH / DELETE 는 각 메서드의 동작 과정 뿐만 아니라, 메서드의 속성 또한 알 필요가 있다. 왜냐하면 어떠한 HTTP 메서드로 서버에 요청했느냐에 따라 API 설계나 복구 메커니즘 캐시 최적화 등, 설계 로직이 달라질 수 있기 때문이다. HTTP 메서드의 속성으로는 크게 3 가지인 안전(Safe), 멱등(Idempotent), 캐시 가능(Cacheable)이 있다. 이들을 하나씩 살펴보자. 안전성(Safe) HTTP 메소드의 안정성이란 보안 취약성을 말하는 것이 아니라 호출해도 리소스가 변경되지 않는 성질을 말하는 것이다. 쉽게 생각해서 GET 메서드는 단순히 데이터를 조회하는 기능을 수행하기 때문에 리소스..
HTTP Overhead 란?
오버헤드 란? 오버헤드(overhead)가 됐다라는 말은, 처리 시간 및 메모리 등이 추가적으로 사용되는 현상을 말한다. 처리 시간이 추가된다는 것을 예로 들면, A라는 처리를 실행한다면 3초 걸린다고 했는데, 안전성을 고려하여 추가로 B라는 처리를 요청한 결과 처리시간이 10초가 걸렸다고 하자. 그러면, 이 때 오버헤드는 7초 이게 된다. 반대로 7초가 걸리는 B를 개선해 A+B 처리를 한 결과 처리시간이 총 5초가 되었다면, 오버헤드가 5초 단축되었다고 말할 수 있다. HTTP(Protocol) 오버헤드 HTTP(프로토콜) 오버헤드란, 네트워크를 통해 대상으로 라우팅되는 데이터와 함께 전송되어야하는 정보를 말하며, 올바른 대상에 도달하기 위해 전송중인 데이터에 추가로 보내지는 정보라 보면 된다. 이게..
[HTTP] HTTPS와 SSL 인증서
HTTPS(Hyper Text Transfer Protocol Secure)란? HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP라는 것을 짐작할 수 있다. (HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜) HTTPS는 SSL(Secure Socket Layer)이라는 프로토콜을 사용해 주고 받는 정보를 암호화한다. 이후 SSL은 TLS (Transport Layer Security)로 발전되어 현재는 SSL/TLS라는 단어를 혼용해서 사용하고 있다. HTT..
[HTTP] HTTP Status Code
HTTP 상태 코드란? 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다. HTTP 상태 코드 분류 상태 코드의 첫 번째 숫자에 따라 크게 5가지로 분류 됩니다. 1xx (Informational) : 요청을 받았으며 작업을 계속한다 2xx (Successful) : 클라이언트가 요청한 동작을 성공적으로 수신하여 이해했고 성공적으로 처리하였다. 3xx (Redirection) : 요청을 완료하기 위해 추가 작업 조치가 필요하다 4xx (Client Error) : 클라이언트의 요청에 문제가 있다. 5xx (Server Error) : 서버가 유효한 요청의 수행을 실패했다. HTTP 상태 코드 상세 자주 사용되는 HTTP 상태 코드 위주로 정리..
[HTTP] HTTP 메서드 종류 & 요청 흐름
HTTP Method 종류 HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 말한다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하여 요청을 보내는 방법이다. HTTP 메소드의 종류는 총 9가지가 있다. 이 중 주로 쓰이는 메소드는 5가지로 보면 된다. 주요 메소드 GET : 서버에 존재하는 데이터 조회 요청하는 것. CRUD로 따지면 R. POST: 서버에 데이터를 처리하는 것을 요청(주로 생성). CRUD로 따지면 C. PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성. CRUD로 따지면 C,U PATCH : 리소스 부분 변경 (PUT이 전체 변경, PATCH는 일부..
[HTTP] HTTP란?
HTTP(Hyper Text Transfer Protocol)란? HTTP(Hyper Text Transfer Protocol)란 서버-클라이언트 모델을 따르면서 request/response 구조로 웹 상에서 데이터를 주고 받을 수 있는 프로토콜(규칙)이다. TCP/IP 기반으로 작동하며, HTTP의 가장 큰 특징은 Connectionless와 Stateless 가 있다. 또한TCP/IP socket을 이용해서 연결된다. 웹문서간에 링크를 통해 연결할 수 있는 프로토콜이며, 문서뿐 아니라 다음과 같은 여러 종류의 데이터들을 폭 넓게 전송할 수 가 있다. HTML, TEXT 이미, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터가 전송 가능 서버간에 데이터를 주고 받을 때 대부분..