모르지 않다는 것은 아는것과 다르다.

Network 5

쿠키와 캐시

쿠키 쿠키는 요청시 항상 포함되어서 요청된다. 쿠키에 저장된 정보를 sessionId로 검색해서 전달해 준다. Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 ex> set-cookie: sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=.google.com; Secure 사용자 로그인 세션 관리에 사용된다. 네트워크에 추가적인 트레픽이 발생하기 때문에 최소한의 정보(세션 id, 인증 토큰)만 사용하는 것을 권장한다. 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지(localStorage, ..

Network 2022.02.27

네트워크

IP(인터넷 프로토콜) 란? IP 의 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet) 이라는 통신 단위로 데이터 전달 IP 패킷 정보 출발지, 목적지, 메시지등을 포함한 패킷을 인터넷에 전달하면 노드들끼리 패킷을 전달하며 목적지로 전달할 수 있는 노드까지 전달된다. IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 -> 패킷을 받을 상황이 아니어도 일단 보내는 문제 비신뢰성 중간에 패킷이 사라진다면? 패킷이 순서대로 안오면? 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? 인터넷 프로토콜 스택의 4계층 위와 같이 인터넷 프로토콜은 4계층으로 구성되어있다. 위와 같이 계층을 통과할때마다 정보를 한겹한겹 ..

Network 2022.02.27

URI 설계 원칙(RFC-3986)

URL 케이스 CamelCase Java 언어로 대중화되었다. 대소 문자로 구분하지 않는 컨텍스트에서 비효율적이다. snake_case C 프로그래머가 수년 동안 널리 사용했다. 언더바(_)는 컴파일러나 인터프리터가 기호로 이해할 수 있다. 사용할 수 없는 컨텍스트는 거의 없다. spinal-case 일부 언어에서 (변수,클래스,함수) 이름에 하이픈을 허용하지 않는다. lisp-case라고도 한다. UNIX, Linux 시스템에서 폴더 및 파일 이름을 지정하는 전통적인 방법이다. 슬래시 구분자(/)는 계층관계를 나타내는데 사용한다. https://hyunwook-chae/SpringStart/tree/main/web URI 마지막 문자로 (/)는 포함하지 않는다. https://hyunwook-chae/..

Network 2022.02.27

REST API란

API 란? Application Programming Interface API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다. API의 역할 API는 서버와 데이터베이스에 대한 출입구 역할을 한다. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다. API는 모든 접속을 표준화한다. REST 란? REpresentational State Transfer 컴퓨터 시스템와 인터넷 사이에 상호 운용성을 제공하는 방법중 하나이다. 시스템 제각각의 독립적인 진화를 보장하기 위한 방법이다. REST API: REST 아키텍처 스타일을 따르는 API 를 뜻한다. REST를 구성하는 스타일 Client-Server : 클라이언트 - 서버 구조를 이루어야 한다. Stateless : ..

Network 2022.02.27

HTTP

HTTP 란? HyperText Transfer Protocol HyperText: html 문서를 말한다. 모든 것이 HTTP로 통신한다해도 과언이 아니다. HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대이다. HTTP 의 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2 2015년: 성능 개선 HTTP/3..

Network 2022.02.27