Computer Science/Network
HTTP 캐시와 조건부 요청
HTTP 캐시와 조건부 요청
2021.12.09캐시 웹 브라우저에서 서버에 캐시 세팅을 하게 되는데 cache-control로 http 헤더에 넣어준다. 캐시가 존재하지 않으면 네트워크 비용이 계속 발생한다. 당연히, 브라우저 로딩 속도가 느리다. 느린 사용자 경험 브라우저 캐시에 응답 결과를 캐시에 저장한다. 캐시의 유효시간을 검증한다. 만료되면 다시 요청해야 하는데 효율적이지 않다. 그래서 사용하는 방법이 검증 헤더 + 조건부 요청을 사용한다. 어떻게? step1. 서버에서 HTTP 응답 헤더에 Last-Modified(검증 헤더)를 넣어서 보내주면 브라우저 캐시에 Last-Modified를 기록해둔다. step2. 클라이언트는 이제 변경된 사항에 대해 HTTP 요청 헤더에 if-modified-since를 붙여놓고 서버에 보낸다. step3. ..
HTTP 헤더
HTTP 헤더
2021.12.09HTTP 헤더 HTTP 전송에 필요한 모든 부가 정보를 포함한다. 예를들면 Content-Type, Content-Length 기반의 메시지 바디를 해석할 수 있다. (해석할 수 있는 정보 제공을 한다.) / 데이터 유형(html, json), 데이터 길이, 압축 등 Content-Type : text/html ... > html 형식 Content-Type : application/json > json 형식 메시지 본문 = 페이로드, 표현 헤더, 표현 데이터 (RFC7230~7235 등장 시점 변경 내용) 표현 데이터 정보를 헤더에서 확인해볼 수 있는데 위에 언급된 2가지와 (Content-Type/ Content-Length) + Content-Encoding/ Content-Language/ Con..
HTTP 상태 코드
HTTP 상태 코드
2021.12.092XX 200 : OK 201 : Created 클라이언트에서 요청한 것을 기반으로 서버에서 생성한 것을 의미한다. 보통 이런 경우에는 POST로 서버에서 자원을 생성해서 응답해줄 때 Location Header 를 응답한다. 202 : Accepted 요청 접수는 되었지만, 처리가 되지 않았다. 204 : No Content 서버가 성공적으로 수행했지만, 응답 페이로드에서 비어있는 상태(보낼 데이터가 없는 경우) 3XX 요청을 완료하기 위해서 웹 브라우저상에 추가 조치가 필요하다. 좀 더 고급진 표현을 쓰면, 유저 에이전트의 조치가 필요하다. 영구 리다이렉션 301 POST 로 요청했을 때 리다이렉션 GET으로 변경되며 HTTP 바디 내용이 날라가게 된다. 실무에서 굉장히 많이 등장하는 내용인데 페이지..
HTTP 메서드 활용
HTTP 메서드 활용
2021.12.09데이터 전송 방법 쿼리 파라미터를 통한 데이터 전송 GET 방법을 많이 사용한다. (주로 정렬 필터로) 정적 데이터를 조회 하는 경우 이미지, 정적 텍스트 동적 데이터를 조회 하는 경우 검색, 게시판 목록 정렬필터 이용 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 를 기반으로 회원 가입, 상품 주문, 리소스 등록, 변경 등을 포함한다. HTML Form 데이터 전송 method = "GET" 도 충분히 들어쓸 수 있지만, 권장하지 않는다. (왜냐하면 리소스 변경이 발생할 수도 있기에) POST면 메시지 바디(key-value)에 넣고 GET이면 URL 경로에 넣는다. HTTP API를 사용해서 데이터 전송 POST, PUT, PATCH, GET 다 지원한다. Content-Type: ..
HTTP 메서드
HTTP 메서드
2021.12.07HTTP 메서드 URI는 리소스 별로 구분짓는것이 중요한데 특히, 리소스만 식별하게 된다. 회원 관리 API 서버를 만든다고 가정해보면, 리소스는 회원이 될것이고 행위는 조회, 등록, 삭제, 변경이 된다. 이 회원 관리 API에서 행위를 구분짓는것이 GET, POST, PUT, PATCH, DELETE 종류가 있다. GET 리소스를 조회 하는 역할을 수행한다. 검색엔진에 Query Parameter, String을 통해서 전달한다. 메시지 바디는 잘 취급하지 않는다. 서버에서 정한 규약이 존재하기 때문에 잘 맞지 않는다. POST 요청 데이터를 처리하게 된다. 메시지 바디를 통해서 서버로 요청 데이터를 전달한다. (가끔 조회 목적으로 쓰기도 한다.) HTTP 메서드 설계시에 리소스로 URI를 사용하는 경..
HTTP 기본
HTTP 기본
2021.12.07Hyper Text Transfer Protocol HTTP 메시지에 IMAGE, 음성, 영상, 파일등을 포함해서 전송할 수 있다. HTTP 메시지에는 모든 것을 전송할 수 있다. 정말? HTTP/1.1 97년도에 출시되어 지금도 많이 사용되고 있다. HTTP2 2015년도에 출시되어 성능개선에 주 목적이 있다. HTTP3 는 진행중인데 TCP대신 UDP를 사용한 것이 특징적이다. 이것도 마찬가지로 성능 개선을 담당하고 있다. 기반 프로토콜 TCP는 HTTP/1.1, HTTP/2 위에서 동작한다. TCP는 기본적으로 빠른 프로토콜은 아니다. UDP는 HTTP/3 위에서 동작한다. 현재는 HTTP/1.1를 주로 사용한다. HTTP/2, HTTP/3도 점점 사용하는 추세이다. 그래서 찾아봤다. Google ..
URI와 웹 브라우저 요청 흐름
URI와 웹 브라우저 요청 흐름
2021.12.07URI vs URL vs URN URI는 Locator, name 을 분류할 수 있다. 즉, 자원을 식별하는 역할을 수행한다. URL = 리소스 위치 URN = 리소스 이름 예를 들면 URN:ISBN:8960777331 도서 책 ISBN에서 사용하는 유즈케이스이다. 하지만, URN 이름만으로는 실제 리소스를 찾는데 방법이 보편화되어있지는 않다. 그래서 거의 대부분 URL을 사용한다고 생각하면 된다. 일반적으로 URL 분석은 아래 포맷을 따르게 된다. scheme://[userinfo@]host[:port][/path][?query][#fragment] 형태를 가지게 된다. scheme - 어떤 프로토콜을 사용할지 결정한다. userinfo - URL에 사용자정보를 포함해서 인증한다. host - 도메인명..
인터넷 네트워크
인터넷 네트워크
2021.12.07IP프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라질시, 패킷이 순서대로 도착하지 않을 경우 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 ? >> 구분할 수 없음 TCP vs UDP IP프로토콜의 한계가 명확하기 때문에 OSI 7계층에서(최근에는 4계층이 시장 점유율이 높다고 한다.) TCP/IP 모델 기반의 TCP 통신을 하는 경우가 많아졌고 상황에 따라 최적화 or 속도 등의 목적으로 UDP를 사용하기도 한다. TCP/UDP 모두 4계층 Network Layer 에서 사용되는 프로토콜이다. 각각의 PDU 이 다른데 TCP의 경우 세그먼트, UDP의 경우 데이터 그램으로 표현할 수 있다. 1) TCP(..
Network08 :: 네임서버
Network08 :: 네임서버
2020.09.28네임 서버는 DNS 서버라고도 합니다. 우리가 인터넷에 접근할때 기본적으로 URL을 사용하게 되는데 실제 원하는 서버에 접근하기 위해서는 URL을 해당 컴퓨터의 IP주소로 변환시켜야 합니다. 이 작업을 수행하는것을 네임 서버 혹은 DNS 서버라고 합니다. URL을 입력했을때 hosts 파일을 검색해서 해당 URL에 대응하는 IP주소를 얻을 수 있습니다. 컴퓨터 수가 많아지면서 이름 해석을 전문으로 하는 서버 컴퓨터가 필요해졌고 이를 네임 서버 혹은 DNS서버라고 합니다. nsloopup 뒤 server 치면 네임 서버를 확인할 수 있습니다. 그외에도 각 포털 사이트의 아이피를 확인할 수 있습니다. 위에서 네임 서버를 수정하고 쿼리를 날리게 되면 웹사이트에서 URL에 따른 리다이렉팅이 되지 않습니다. 따라..
Network07 :: OSI 7 계층
Network07 :: OSI 7 계층
2020.09.26ㅡ. OSI 7 계층이 무엇인지? 네트워크 통신에서 일어나는 과정을 7 레이어로 나눈 것입니다. ㅡ. OSI 7 계층을 나누는 이유 흐름을 파악하기 쉽고, 사람들이 이해하기 쉬운 장점이 있습니다. ㅡ. 각 계층별 특징 1) 물리계층 대표적으로 케이블, 허브 등이 있습니다. 데이터를 전기적인 신호로 변환해서 주고받을 수 있는 기능을 수행합니다. 이는 데이터 전송 역할을 전기적신호를 이용하는것을 의미합니다. 데이터 전송 계층 : 단지 데이터 전달(0,1 비트열) 2) 데이터링크 계층 대표적으로 브릿지, 스위치가 있습니다. 여기서는 맥(Mac) 주소를 이용해서 통신하게 됩니다. 전송되는 단위는 프레임이라고 합니다. 물리계층에서 발생하는 오류를 찾아내고, 수정하는 역할을 진행합니다. 전반적으로 에러검출, 재전송..
Network06 :: 서브넷마스크(3)
Network06 :: 서브넷마스크(3)
2020.09.02ㅡ. 시작 공인 IP주소 210.100.1.0 (서브넷 마스크 255.255.255.0) 에서 호스트 30개를 포함할 수 있는 네트워크 4개를 생성해야 한다면 어떠한 서브넷 마스크를 만들어야 할까? 1. 모든 호스트에게 보낼 메시지가 존재한다면 주소를 210.100.1.255 를 사용해서 210.100.1.0 네트워크의 모든 호스트에게 전송합니다. 2. 호스트의 수는 호스트 비트 수가 커지면 커질수록 증가합니다. 사용가능한 호스트 수 : 2^(호스트 비트 수)-2, 최소 5는 되어야 30개의 호스트 수가 나온다는 의미입니다. 3. 210.100.1.0 에서 210.100.1.0000 0000이 되고 210.100.1.aaabbbbb (a는 서브넷, b는 호스트가 됩니다.) 호스트는 오른쪽에서 왼쪽으로 증..
Network05 :: 서브넷 마스크(2)
Network05 :: 서브넷 마스크(2)
2020.09.02ㅡ. 시작 서브넷은 서브넷 마스크로 만들어진 네트워크 입니다. 따라서, 서브넷 끼리는 라우터를 통해서만 통신이 가능합니다. 왜냐하면 하나의 네트워크 이기 때문입니다. e.g) 150.100.0.0, 클래스 B 네트워크가 존재할때 클래스 B의 디폴트 서브넷 마스크는 255.255.0.0 입니다. 여기서 네트워크 안에서 150.100.100.1과 150.100.200.1 은 같은 네트워크에 있습니다. 하나의 브로드캐스트 도메인에 있는 PC 입니다. 라우터 없이 통신이 가능합니다. 하지만, 여기서 255.255.255.0 서브넷 마스크를 이용해 서브네팅 해보면 네트워크부분이 달라지게 됩니다. 네트워크 부분이 세자리가 되어서 기존에 150.100.100 과 150.100.200 으로 나누어지게 됩니다. 서브넷 ..