HTTP
-
HTTP 헤더2 - 캐시와 조건부 요청HTTP 2021. 12. 7. 00:20
캐시가 없을 때 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야한다. 인터넷 네트워크는 매우 느리고 비싸다 브라우저 로딩 속도가 느리다.(느린 사용자 경험) 캐시 적용 cache-control: max-age =60 //캐시 지속시간(?) 60초로 설정 캐시 덕분에 캐시 가능 시간 동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험 캐시 시간 초과 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다.(불필요한 손실) 캐시 시간 초과(해결방안) 검증헤더(Last-Modified)와 조건부(if-Modified-since) 요청 서버 데이터를 변경하지 않았을 경..
-
HTTP 헤더 - 일반 헤더HTTP 2021. 12. 1. 17:19
HTTP 헤더 field-name : field-value ex) Host:www.google.com content-Type:text/html;charset=UTF-8 content-Length:3423 용도 : HTTP 전송에 필요한 모든 부가 정보 ex) 메시지 바디의 내용, 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보.. 등 필요시 임의의 헤더 추가 가능 ex) helloworld:hihi HTTP BODY 메시지 본문(message body)을 통해 표현 데이터 전달 메시지 본문 = payload 표현은 요청이나 응답에서 전달할 실제 데이터 표현 헤더와 표현 데이터로 나뉨 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 데이터 유형(html, json), 데이터 길이,..
-
HTTP 상태 코드HTTP 2021. 12. 1. 01:42
2xx(Successful) 200 OK 201 Created 요청에 성공하여 새로운 리소스가 생성 202 Accepted 요청이 접수되었으나 처리가 완료되지 않음 배치 처리 같은 곳에서 사용 예) 요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리 204 No Content 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 문서 편집기에서 아무 내용도 입력하지 않았지만 save가 가능한 경우 성공을 인식하기 위해 사용 3xx(Redirection) 302 Found 리다이렉트시 요청 메서드가 GET으로 변환, 본문(메시지 바디)이 제거될 수 있음(아마도) 307 Temporary Redirect 302와 기능은 같음 HTTP 메서드와 본문 유지 HTTP 메서드와 메시지 ..
-
HTTP 메서드HTTP 2021. 11. 28. 22:42
쿼리 파라미터를 통한 데이터 전송 GET, 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원가입, 상품 주문, 리소스 등록, 리소스 변경 등 클라이언트에서 서버로 데이터 전송 4가지 상황 정적 데이터 조회(이미지, 정적 텍스트 문서) 동적 데이터 조회(주로 검색, 게시판 목록에서 정렬 필터) HTML FORM을 통한 데이터 전송(POST, GET 방식, 회원 가입, 상품 주문) HTTP API를 통한 데이터 전송(회원 가입, 상품 주문, 데이터 변경, 서버 to 서버, Ajax, JSON) HTML FORM 데이터 전송 파일 전송(multipart/form-data) HTTP API 데이터 전송 메시지 바디를 통해서 데이터 전송 React, VueJs 같은 웹 ..
-
HTTP APIHTTP 2021. 11. 27. 01:47
HTTP API URI 설계 리소스를 중점으로 설계해야함 리소스 : 자원 리소스와 행위를 분리 HOW?) HTTP 메서드 - GET, POST HTTP 메서드 종류 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 등록에 사용(즉, 데이터를 줄테니까 처리해줘란 의미) post 메서드의 고유한 의미체계(게시판 글쓰기, 댓글 달기, 회원가입, 주문 등)에 따라 표현을 처리해달라고 요청한다. 이렇게 보내진 post 데이터를 어떻게 처리할지 리소스(URI)마다 따로 정해야함(정해진것이 없음) 최대한 리소스를 기준으로 URI를 설계하는것이 바람직하지만, 여건이 안될 때는 컨트롤 URI를 사용한다. 컨트롤 URI 예시) POST /orders/{orderId}/start-delivery 다른 메서드로 처..
-
HTTP 특징HTTP 2021. 11. 26. 00:55
HTTP 특징 클라이언트 서버 구조 클라이언트와 서버가 분리(개별적으로 관리하는데 유용) 무상태 프로토콜(Stateful, Stateless) Stateful(상태 유지) 로그인(브라우저 쿠키와 서버 세션등을 사용해서 상태 유지), 상태 유지는 최소한만 사용 Stateless(무상태) 무상태는 응답 서버를 쉽게 바꿀 수 있다.(무한한 서버 증설 가능) 로그인이 필요 없는 페이지 요청하는 데이터가 Stateful보다 상대적으로 크다. 서버 개발자들이 어려워하는 업무(같은 시간에 들어오는 대용량 트래픽 처리) 비 연결성 서버는 연결 유지x, 최소한의 자원 사용 단점 ) TCP/IP 연결을 새로 맺어야함 - 3 way handshake 시간 추가 웹브라우저로 사이트를 요청하면 많은 자원이 함께 다운로드(자바스..
-
HTTP 기본 지식(1)(IP,TCP,UDP,PORT,DNS,URI)HTTP 2021. 11. 22. 17:22
IP(Internet Protocol) 인터넷 통신에 필요 IP 패킷 출발지 IP, 목적지 IP 한계) 비연결성(받을 대상이 없어도 패킷 전송), 비신뢰성(패킷의 연결 중단 또는 불규칙한 순서), 프로그램 구분을 못함 해결방안) TCP TCP(Transmission Control Protocol) IP 패킷안에 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보, 전송 데이터 등이 포함 연결 지향(선 연결 후 전송)(TCP 3 way handshake(가상 연결)) 순서 보장 신뢰성, 대부분 application에서 사용 TCP 3 way handshake 클라이언트와 서버가 서로간에 syn(접속 요청)와 ack(요청 수락) 및 데이터 전송 가상 연결 IP 스택 4계층 애플리케이션 계층 -..