본문 바로가기

IT

(10)
섹션 8. HTTP 헤더2 - 캐시와 조건부 요청 캐시 기본 동작 캐시 없을 때데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다.인터넷 네트워크는 매우 느리고 비싸다브라우저 로딩 속도가 느리다.  두번째 요청시 캐시에서 조회 캐시 적용캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다비싼 네트워크 사용량을 줄일 수 있다브라우저 로딩 속도가 매우 빠르다.캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다.서버에서 기존 데이터를 변경함서버에서 기존 데이터를 변경하지 않음 생각해보면 데이터를 전송하는 대신에 저장해 두었던 캐시를 재사용 할 수 있다. 단 클라이언트의 데이터와 서버의 데이터가 같다는 사실을 확인할..
섹션 6. HTTP 상태코드 상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational): 요청이 수신되어 처리중 (거의 사용 안함)2xx (Successful): 요청 정상 처리3xx (Redirection): 요청을 완료하려면 추가 행동이 필요4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 2xx (Successful) 클라이언트의 요청을 성공적으로 처리200 OK201 Created요청 성공해서 새로..
섹션 5. HTTP 메서드 활용 • 클라이언트에서 서버로 데이터 전송• HTTP API 설계 예시  HTML Form 데이터 전송정리HTML Form submit시 POST 전송예) 회원 가입, 상품 주문, 데이터 변경Content-Type: application/x-www-form-urlencoded 사용form의 내용을 메시지 바디를 통해서 전송(key=value, 쿼리 파라미터 형식)전송 데이터를 url encoding 처리예) abc김 -> abc%EA%B9%80HTML Form은 GET 전송도 가능Content-Type: multipart/form-data파일 업로드 같은 바이너리 데이터 전송시 사용다른 종류의 여러 파일과 폼의 내용 함께 전송 가능(그래서 이름이 multipart)참고: HTML Form 전송은 GET, PO..
섹션 4. HTTP 메서드 HTTP APIAPI URI를 만들 때 가장 중요한 것은 리소스 식별리소스: 회원리소스와 해당 리소스를 대상으로 하는 행위을 분리행위: 조회, 등록, 삭제, 변경예시=>GET 회원 목록 조회 /membersGET 회원 조회 /members/{id}POST 회원 등록 /members/{id}PATCH 회원 수정 /members/{id}DELETE 회원 삭제 /members/{id} HTTP 메서드 종류 주요 메서드GET: 리소스 조회POST: 요청 데이터 처리, 주로 등록에 사용PUT: 리소스를 대체, 해당 리소스가 없으면 생성PATCH: 리소스 부분 변경DELETE: 리소스 삭제 HTTP 메서드 종류 기타 메서드HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환OPTIONS: ..
섹션 3. HTTP 기본 HTTP(HyperText Transfer Protocol) HTTP 메시지에 모든 것을 전송HTML, TEXTIMAGE, 음성, 영상, 파일JSON, XML (API)거의 모든 형태의 데이터 전송 가능서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용  기반 프로토콜TCP: HTTP/1.1, HTTP/2UDP: HTTP/3현재 HTTP/1.1 주로 사용HTTP/2, HTTP/3 도 점점 증가  HTTP 특징클라이언트 서버 구조서버가 요청에 대한 결과를 만들어서 응답 클라이언트는 서버에 요청을 보내고, 응답을 대기무상태 프로토콜(스테이스리스), 비연결성HTTP 메시지단순함, 확장 가능 Stateful, Stateless 차이• 상태 유지: 중간에 다른 점원으로 바뀌면 안된다.
(중간에 다른 점원으로 ..
섹션 2. URI와 웹 브라우저 요청 흐름 🍘URI(Uniform Resource Identifier)   URI단어 뜻 Uniform: 리소스 식별하는 통일된 방식  Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator URN: Uniform Resource Name    URL전체 문법scheme://[userinfo@]host[:port][/path][?query][#fragment]https://www.google.com:443/search?q=hello&hl=ko 프로토콜(https)• 호스트명(www.google.com) 포트 번호(443)패스(/search)쿼리 파라미터(q=hello&hl=ko)  🍘웹 브라우저 요..
섹션 1. 인터넷 네트워크 🍘인터넷 통신인터넷 망을 통해서 "Hello,World" 메시지 보냄수많은 서버(노드)를 거쳐서 목적지 까지 도착 이것을 이해하려면 IP 인터넷 프로토콜을 알아야한다. 🍘IP인터넷 프로토콜 역할지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달클라이언트 패킷 전달서버 패킷 전달   IP 프로토콜의 한계비연결성패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송비신뢰성패킷이 중간에 소실될 수도 있고 순서도 보장되지 않음구분의 모호함클라이언트 PC가 여러 개의 서버와 통신해야 하는 상황이라면서버가 클라이언트 PC로 패킷을 보내려면 클라이언트 IP로 패킷을 보내야한다.하지만 IP만 사용하면, 클라이언트 입장에서는 받은 패킷이 게임, 화상통화, 웹브라..
linux 폐쇄망 Nodejs 설치 간혹 프로젝트 투입되면 보안때문에 인터넷 연결이 안되기 때문에 직접 설치를 해야된다. node 버전을 최신버전 이외에 다운로드시 이전버전 Previous Releases 선택 후 맞는 버전 다운로드 하면 된다. https://nodejs.org/en/download/ 필자의 경우 서버에 접근시 sftp로 파일을 옮길 수 있었다. /usr/local/lib/{폴더명} 혹은 특정 폴더 아무경로나 상관없었다 특정 폴더로 옮기면 압축을 풀어줘야한다. tar xvf node-v16.17.1-linux-x64.tar.xz /usr/local/lib/{폴더명}/node-v16.17.1-linux-x64/bin/node -v 입력시 Node 버전이 잘 나오면 정상적인 파일이다. 그 이후 환경 설정을 해야한다. vi ~..