본문 바로가기

CS

[HTTP | HTTP 웹 기본지식 | HTTP 헤더2 - 캐시와 조건부 요청] 캐시, 프록시 캐시 HTTP 헤더의 캐싱은 웹 성능 최적화의 핵심적인 부분이다. 캐싱은 서버와 클라이언트 간의 데이터 전송량을 줄여주며, 페이지 로딩 시간을 단축시켜 사용자 경험을 개선한다. 이 과정에서 사용되는 주요 HTTP 헤더를 살펴보자.Cache-Control: 이 헤더는 캐시의 동작을 제어한다. 예를 들어, Cache-Control: no-store는 어떠한 캐시도 사용하지 않도록 지시하며, Cache-Control: max-age=3600은 리소스를 3600초 동안 캐시로 저장하고 사용할 수 있음을 나타낸다.Expires: 이 헤더는 리소스가 언제 만료되는지를 나타내는 날짜와 시간을 제공한다. Expires 헤더가 설정되어 있으면, 그 시간 이후에는 캐시된 복사본을 사용하지 않고 서버로부터 새로운 복사본을 요청해.. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 헤더1 - 일반 헤더] 표현, 협상, 쿠키 HTTP에서 "표현 헤더"는 특정 리소스의 표현 방식에 대한 정보를 제공하는 헤더 그룹을 의미한다. 이러한 헤더는 주로 리소스의 내용과 그 내용이 어떻게 해석되어야 할지에 대한 메타데이터를 포함한다. 표현 헤더는 엔터티 헤더와 관련이 깊으며, 주로 콘텐츠의 형식, 인코딩, 언어 등을 지정하는데 사용된다.표현 헤더에 포함되는 주요 헤더는 다음과 같다:Content-Type: 이 헤더는 전송되는 리소스의 미디어 타입을 나타낸다. 예를 들어, text/html, application/json 등이 이에 해당한다. Content-Type은 리소스가 어떤 형식의 데이터를 포함하고 있는지를 서버와 클라이언트에 알려주어 적절한 방식으로 처리할 수 있게 한다.Content-Encoding: 이 헤더는 데이터가 어떻게 .. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 상태코드] 2,3,4,5xx 상태코드 HTTP 상태 코드는 서버가 클라이언트의 요청을 처리한 결과를 나타내는 숫자 코드이며, 이를 통해 클라이언트는 요청의 성공 여부와 그 원인을 파악할 수 있다. 상태 코드는 다섯 가지 범주로 분류됩니다.1xx (정보 응답)이 범주의 상태 코드는 요청을 받았으며 프로세스가 계속 진행 중임을 나타낸다.예: 100 Continue - 클라이언트는 요청을 계속해야 함을 나타낸다.2xx (성공)이 범주의 상태 코드는 클라이언트의 요청이 성공적으로 수신, 이해, 수락되었음을 나타낸다.예: 200 OK - 요청이 성공적으로 처리되었음을 나타낸다.예: 201 Created - 요청이 성공하였고 그 결과로 새 리소스가 생성되었음을 나타낸다.3xx (리다이렉션)이 범주의 상태 코드는 요청을 완료하기 위해 추가 조치가 필요함.. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 메서드 활용] HTTP API 설계 예시 • 이미지, 정적 텍스트 문서• 조회는 GET 사용• 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능• 주로 검색, 게시판 목록에서 정렬 필터(검색어)• 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용• 조회는 GET 사용• GET은 쿼리 파라미터 사용해서 데이터를 전달• HTML Form submit시 POST 전송• 예) 회원 가입, 상품 주문, 데이터 변경• Content-Type: application/x-www-form-urlencoded 사용• form의 내용을 메시지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)• 전송 데이터를 url encoding 처리• 예) abc김 -> abc%EA%B9%80• HTML Form은 .. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 메서드] HTTP 메서드 API URI(Uniform Resource Identifier) 설계는 웹 API 개발에서 중요한 부분이다. 잘 설계된 URI는 리소스에 대한 쉬운 접근, 직관적인 경로 이해 및 효율적인 네트워크 통신을 가능하게 한다. URI는 API의 엔드포인트를 식별하며, 리소스 중심의 구조를 따라야 한다. 다음은 API URI 설계의 기본 원칙과 좋은 예시들을 소개한다.URI 설계의 기본 원칙명확성과 간결성: URI는 간결하고 이해하기 쉬워야 한다. 불필요한 길이나 복잡성은 피하고, 리소스를 명확하게 식별할 수 있어야 한다.리소스 중심: 각 URI는 특정 리소스 또는 리소스 집합에 대응되어야 한다. 리소스는 명사로 표현되며, 동작은 HTTP 메소드(GET, POST, PUT, DELETE)로 표현한다.계층적 구조.. 더보기
[HTTP | HTTP 웹 기본지식 | HTTP 기본] HTTP 구조 기반 프로토콜• TCP: HTTP/1.1, HTTP/2• UDP: HTTP/3• 현재 HTTP/1.1 주로 사용• HTTP/2, HTTP/3 도 점점 증가 HTTP 특징• 클라이언트 서버 구조• 무상태 프로토콜(스테이스리스), 비연결성• HTTP 메시지• 단순함, 확장 가능 HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 교환하는 데 사용되는 프로토콜이다. 웹에서 클라이언트(주로 웹 브라우저)와 서버 간에 커뮤니케이션을 가능하게 하며, HTML 문서나 이미지와 같은 리소스를 요청하고 전송하는 데 사용된다.작동 원리: 클라이언트는 서버에 특정 리소스를 요청하는 HTTP 요청을 보내고, 서버는 요청을 받아 처리한 후 요청된 리소스와 함께 HTTP 응답을 클라이언트에게 보낸다. .. 더보기
[HTTP | HTTP 웹 기본지식 | URI와 웹 브라우저 요청 흐름]URI URI(Uniform Resource Identifier)는 인터넷에 있는 자원을 식별하는 데 사용되는 문자열의 표준 형식이다. URI는 자원을 이름 지을 뿐만 아니라 위치를 지정할 수도 있어, 인터넷 상의 자원을 찾는 데 필수적인 역할을 한다. 이는 웹 페이지, 파일, 서비스 또는 이메일 주소와 같은 다양한 형태의 자원을 식별할 수 있다.URI의 구성 요소URI는 다음과 같은 주요 구성 요소로 이루어져 있다:스킴(Scheme): 자원에 접근하는 데 사용되는 프로토콜을 명시한다. 예를 들어, http, https, ftp 등이 있다.호스트(Host): 자원이 호스팅되는 서버의 도메인 이름이나 IP 주소.포트(Port): 서버에서 자원에 접근하는 데 사용되는 포트 번호(명시적으로 표시되지 않은 경우 기본 .. 더보기
[HTTP | HTTP 웹 기본지식 | 인터넷 네트워크] TCP, UDP 인터넷 프로토콜은 데이터 통신을 위한 규칙들을 정의하며, 특히 인터넷에서 데이터를 안전하고 효율적으로 전송하기 위해 여러 계층으로 구성되어 있다. 이 중에서도 네트워크 통신의 핵심을 이루는 4계층은 다음과 같다.링크 계층 (Link Layer): 이 계층은 네트워크의 가장 낮은 단계로, 물리적인 매체를 통해 데이터를 전송하는 역할을 한다. 이러한 매체에는 케이블, 광섬유, 무선 연결 등이 포함된다. 링크 계층의 대표적인 예로는 이더넷(Ethernet)과 Wi-Fi가 있다.인터넷 계층 (Internet Layer): 이 계층의 가장 중요한 프로토콜은 인터넷 프로토콜(IP)이며, IP 주소를 사용하여 데이터를 송수신하는 기기 간의 라우팅을 담당한다. 이 계층에서는 패킷이 올바른 목적지로 전송되도록 경로를 설.. 더보기