개발자로서 알아야 할 CS/HTTP 웹 기본 지식
-
HTTP 캐시(Cache)와 조건부 요청에 따른 처리와 프록시 캐시개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 2. 1. 19:39
캐시(Cache) 란? 캐시란 client가 요청하는 html, image, js, css등에 대해 첫 요청 시에 파일을 내려받아 특정 위치에 복사본을 저장하고, 이후 동일한 URL의 Resource요청은 서버에 다시 요청하여 해당 파일을 내려받지 않고 내부에 저장한 파일을 사용하여 더 빠르게 서비스하기 위한 것이다. 캐시를 이용하여 서버를 통해 내려 받는 데이터 양이 적어지니 응답 시간이 감소하고 네트워크 트래픽 또한 감소되게 해 준다. 차이점 캐시 미사용 캐시 사용 데이터가 변경되지 않아도 서버에 요청하여 해당 데이터들을 다운받아야 한다. 캐시를 이용하여 캐시 생존 시간동안 네트워크를 통해 해당 데이터들을 다시 다운받지 않아도 된다. 네트워크 트레픽 증가 네트워크 트레픽 감소 브라우저 로딩 속도가 느..
-
HTTP 헤더(HTTP header)개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 2. 1. 16:39
참고 HTTP 표준이 2014년에 RFC2616d에서 RFC7230으로 변경되었다. 메시지 본문은 페이로드(payload)라고도 하며 표현 데이터를 전달한다. 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공 (데이터 유형(HTML, JSON), 데이터 길이, 압축 정보 등 HTTP 헤더( HTTP header ) HTTP Header에는 클라이언트와 서버가 요청 또는 응답을 할 때 헤더에 부가적인 정보를 포함하여 전송한다. 헤더는 크게 4가지로 분류할 수 있다. General Header(공통 헤더) Request Header(요청 헤더) Response Header(응답 헤더) Entity Header(엔티티 헤더) = Representation He..
-
HTTP 상태 코드개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 2. 1. 13:34
HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 첫 번째 자리가 1~5인 3자리 숫자로 이루어져 있으며 상태 코드로 요청에 의한 응답이 잘 이루어졌는지, 아니면 문제가 발생하였는지 알 수 있다. 1xx (Informational) : 요청이 수신되어 처리중 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요(추가 요청) 4xx (Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : 서버 오류, 서버가 정상적으로 요청을 처리하지 못함(DB 접근이 불가능 상태 등) 2xx (Successful) 상태 코드 요약 설명 200..
-
HTTP 메서드의 데이터 전송 방법개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 27. 17:26
클라이언트에서 서버로 데이터 전송 데이터 전달 방식 쿼리 파라미터를 통한 데이터 전송 - GET 메시지 바디를 통한 데이터 전송 - POST, PUT, PATCH 클라이언트는 다음과 같은 상황에 서버로 데이터를 전송한다. 정적 데이터 조회 (이미지, 정적 텍스트 문서) 동적 데이터 조회 (게시판 검색, 게시판 목록 정렬) HTML FROM을 통한 데이터 전송 (회원가입, 상품 주문, 데이터 변경) HTTP API를 통한 데이터 전송 (AJAX, 회원가입, 상품 주문, 데이터 변경) 정적 데이터 조회 이미지, 정적 텍스트 문서 데이터를 조회할 때 이용 GET을 사용한다. 정적 데이터는 쿼리 파라미터 없이 리소스 경로로 서버에 요청하여 조회한다. 동적 데이터 조회 주로 검색, 게시판 목록의 정렬 필터를 이용..
-
HTTP 메서드개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 27. 14:21
HTTP 메서드 메서드 종류 HTTP 메서드의 속성 HTTP 메서드 클라이언트가 서버로 요청을 할 때, 어떠한 목적을 갖는 행위인지 HTTP 메서드에 명시한다. 일종의 약속인 것을 기억하자. 클라이언트가 처리를 원하는 방법을 메서드에 명시할 테니 서버에서는 그 메서드에 명시한 대로 응답을 보내달라는 일종의 약속이다. 이러한 약속으로 클라이언트와 서버 간 데이터 통신을 할 수 있게 되는 것이다. 또한 중요한 사실 하나! 같은 URI라도 HTTP 메서드에 따른 다른 처리를 할 수 있다는 것이다. 예를 들어 /members/{member_id} 라는 URI를 클라이언트가 요청시 요청 메시지의 GET, POST, PUT, PATCH, DELETE의 메서드를 사용할 때 각 메서드에 맞는 처리를 한 URI에서 처리..
-
HTTP 메시지(HTTP message)개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 26. 19:54
HTTP 메시지에는 HTML, Text, image, 음성, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터 전송이 가능하다. 때문에 서버 간의 데이터를 주고받을 때도 대부분 HTTP를 사용한다. 그렇다면 HTTP 메시지는 어떻게 구성되어있는지 알아보자. HTTP 메시지 HTTP 요청 메시지 - 시작 라인 HTTP 요청 메시지에서 첫 줄은 request-line 라고도 한다. HTTP 메서드, 요청 대상, HTTP Version 정보를 나타낸다. request-line : method SP(공백) request-target SP HTTP-version CRLF(엔터) method : HTTP 메서드 request-target : 요청 대상(/search?q=hello&hi=ko), 절대 경로..
-
HTTP(HyperText Transfer Protocol)의 특징개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 26. 18:15
HTTP 란? HTTP는 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 프로토콜은 일종의 약속이라고도 하는데 이러한 약속을 정해두었기 때문에 모든 프로그램이 이 규칙에 맞춰 개발하여 서로 데이터를 주고받을 수 있게 되었다. 주고받는 데이터는 HTML, Text 뿐만 아니라 image, 음성, 영상 파일, JSON, XML과 같이 거의 모든 형태의 데이터를 주고받을 수 있다. 특징 1 - 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태나 데이터를 보존하지 않는다. 상태유지가 필요한 경우 쿠키와 서버 세션 등을 이용한다. 장점 : 서버 확장성이 높다. 단점 : 클라이언트가 재요청시 기존 데이터와 추가된 데이터를 전송해야 한다. 특징 2 - 비 연결성(Connectionless) HTTP는 ..
-
TCP/IP, 웹 브라우저 요청 흐름개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 1. 25. 23:42
웹 브라우저 요청 흐름 주소 입력 클라이언트가 해당 주소를 요청 웹 브라우저가 DNS 조회하여 IP 정보를 찾아온다. IP, PORT, Path, Query 등을 이용하여 HTTP 요청 메시지를 생성 TCP/IP 패킷 SOCKET 라이브러리를 통해 HTTP 메시지를 TCP/IP 계층에 전달 3 way handshake을 이용하여 서버와 연결 HTTP 메시지를 포함한 TCP/IP 패킷을 생성 TCP/IP 패킷 전달 패킷이 노드를 거쳐 해당 서버에 전달 전달 받은 패킷을 해석하여 요청에 맞는 로직 처리 서버에서 응답 메시지 생성 후 웹 브라우저에 전달 요청에 따른 결과로 응답 패킷 생성 해당 웹 브라우저에 응답 패킷 전달 웹 브라우저는 응답 패킷를 해석하여 렌더링을 통하여 화면에 출력 참조 자료 모든 개발자..