본문 바로가기

Network19

[Network] DNS(Domain Name Server)란? ✅ 01. DNS(Domain Name Server)우선, DNS(Domain Name Server)란 무엇인지 그리고 DNS는 어떻게 동작하는지 알아야 한다고 생각한다. DNS란(Domain Name Server)란 사람이 이해하기 쉬운 도메인 이름(예: http://google.com">google.com)을 컴퓨터가 이해 할 수 있는 IP주소(예: 142.250.190.14)로 변환해주는 시스템을 의미한다. 또한, 인터넷에서 사용되는 주소록이라 볼 수 있습니다.그렇다면 DNS(Domain Name Server)를 왜 사용할까?만약 “naver.com” 같은 이름이 아닌 IP주소만 존재하는 경우, 수억개의 공인 IP가 있을텐데 사람은 이렇게 많은 IP를 일일이 기억할 수 없기 때문에 우리는 DNS를 .. 2025. 3. 7.
[Linux] sudo / su / su - 차이 이번 시간에는 Linux에서 사용되는 sudo / su / su - 의 차이점에 대해 알아보자. 위 명령어는 주로 일반 사용자가 관리자 권한을 통해 특정 행위를 수행해야 하는 경우 사용이되는 명령어다.01. sudo / su / su - ??리눅스에서는 특정 명령을 수행하기위해 관리자 권한(root)이 필요한 경우가 존재한다. 일반 사용자가 관리자 권한(root)을 사용하기 위해서는 su(switch user) or sudo(SuperUser Do) 명령어를 사용하면 된다.✅ 01-1. su(Switch User)su [option] [username]su 다음에 사용자명을 입력하지 않으면 root로 사용자 전환현재 계정을 로그아웃 하지 않고 다른 계정으로 전환하는 명령어사용자 전환 시 해당 사용자의 패.. 2025. 2. 18.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 프록시캐시와 캐시무효화 ✔ 캐시 제어 헤더Cache-Control캐시 제어Pragma캐시 제어(하위 호환)Expires캐시 유효 기간(하위 호환)Cache-Control (캐시 지시어)Cache-Control: - HTTP 1.1에서 추가된 기능으로, 여러 캐싱 정책을 다양하게 제공 - 최근에는 ETag와 Cache-Control을 사용하여 컨텐츠 캐싱을 수행하는 추세다max-age캐시 유효 시간, 초 단위예를 들어 60 _ 60 = 3600을 입력하면 한 시간, 3600 _ 24 = 86400을 입력하면 하루동안 캐시 유지이후엔 서버에 요청한 뒤 304 응답을 받을 때에만 캐시를 이용한다no-cache캐시가 유효한지 확인하기 위해 매번 원 서버에 요청을 보낸다여기서 원 서버라는 말은, 프록시 서버(중간 캐시 서버)가 아닌.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 특별한헤더의 정보 및 종류 ✔ 특별한 Header 정보Host요청한 호스트 정보, 도메인(요청)Location페이지 리다이렉션(응답)Allow허용 가능한 HTTP 메서드(응답)Retry-After유저 에이전트가 다음 요청을 하기까지의 걸리는 시간(응답)HostGET /search?q=hello&hl=ko HTTP/1.1Host: www.google.com(Header)요청한 호스트 정보(도메인)요청에서 사용필수 Header 정보로, 가장 중요한 정보다하나의 서버가 여러 도메인을 처리할 때 사용하나의 IP 주소에 여러 도메인이 적용되어 있을 때하나의 서버가 여러 도메인을 처리해야 할 경우?가상호스트를 통해 여러 도메인을 한번에 처리할 수 있는 서버로, 실제 애플리케이션이 여러개 구동될 수 있다하나의 서버안에 여러개의 애플리케이션이 .. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 클라이언트와 서버의 데이터교환 방식 ✔ 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 데이터 전달 4가지 상황 정적 데이터 조회: 이미지, 정적 텍스트 문서 동적 데이터 조회: 주로 검색, 게시판 목록에서 정렬 필터 (검색어) HTML Form을 통한 데이터 전송: 회원 가입, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송: HTML Form을 사용하지 않는 모든 상황 (Ajax) 회원 가입, 상품 주문, 데이터 변경 서버 to 서버, 앱 클라이언트, 웹 클라이언트 (Ajax) 정적 데이터 조회 쿼리 파라미터 미사용 이미지, 정.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 캐시기본동작과 조건부요청 ✔ HTTP Header 캐시캐시가 없는 경우(요청 예시)#요청GET /star.jpg#응답HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 34012lkj123kjddhdudieidjskskdhdjd987snshsjdksjdjskdjakasksskskdjdjsjkdkd938372sksksks;oisjsjdkds;skskdl;GET 요청을 통해 star.jpg 이미지 요청서버는 GET 요청에 맞는 이미지를 내려준다이때 헤더와 바디의 용량은 아래와 같다HTTP 헤더: 0.1MHTTP 바디: 1.0M캐시를 사용하지 않는다면?서버는 헤더와 바디를 매번 생성하여 클라이언트에 전달을 해야한다데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운 받아야 한다인.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 일반헤더의 콘텐츠협상과 전송방식 ✔ 콘텐츠 협상(Content Negotiation)클라이언트가 선호하는 표현 요청:Accept: 클라이언트가 원하는 미디어 타입 전달Accpet-Charset: 클라이언트가 원하는 문자 인코딩Accept-Encoding: 클라이언트가 원하는 압축 인코딩Accept-Language: 클라이언트가 원하는 자연 언어협상 헤더는 요청시에만 사용클라언트가 원하는 방식으로 서버에 요청하는 방식Accept-Language 적용 전GET /eventAccept-Language: ko한국어 브라우저를 사용하는 클라이언트 측에서 서버에 요청을 보낸다Content-Language: ko안녕하세요다중 언어를 지원하는 서버는 Accept-Language를 보고 언어에 맞는 데이터 반환Accept-Language 복잡한 예시G.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 일반헤더 정보 및 종류 ✔ 일반 Header 정보From유저 에이전트의 이메일 정보Referer이전 웹 페이지 주소User-Agent유저 에이전트 애플리케이션 정보Server요청을 처리하는 오리진 서버의 소프트웨어 정보Date메시지 생성 날짜From유저 에이전트의 이메일 정보일반적으로 잘 사용 안함검색 엔진 같은 곳에서, 주로 사용요청에서 사용Referer이전 웹 페이지 주소현재 요청된 페이지의 이전 웹 페이지 주소A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청요청에서 사용유입 경로(이전 웹 브라우저 페이지)를 분석할 경우 많이 사용이 된다User-Agent클라이언트 애플리케이션 정보user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) App.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 일반헤더 개념설명 ✔ HTTP 헤더#1: RequestGET /search?q=hello&hl=ko HTTP/1.1Host: www.google.com #header#2: ResponseHTTP/1.1 200 OKContent-Type: text/html;charset=UTF-8Content-Length: 3423 #header ...header-field = field-name “:” OWS field-value OWS (OWS: 띄어쓰기 허용)field-name은 대소문자 구분 없음HTTP 헤더의 용도HTTP 전송에 필요한 모든 부가정보메시지 바디 내용, 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리정보표준 헤더가 너무 많음필요시 임의의 헤더 추가 가능helloworld: hihiHTTP 헤더분류 -.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 인증과정-쿠키 10. ✔ 인증완벽한 인증은 없으며, 비밀번호는 유출이되고, 신분증은 위조가 된다완벽한 인증은 존재하지 않는다, 거대한 인터넷 내에서의 보안(인증)은 필수적이다HTTP 기본 인증 과정을 정리하며 인증에 대해 정리 해보자✔ HTTP 인증요구기본 인증기본 인증은 가장 잘 알려진 HTTP 인증 규약기본 인증의 경우 서버는 클라이언트의 요청을 거부하고 추가적인 데이터를 요구할 수 있다서버는 401 상태 코드와 클라이언트가 접근하려했던 부분을 WWW-Authenticate에 적어 반환Authorization클라이언트 인증 정보비밀번호, 개인정보, 등을 서버에 전달WWW-Authenticate리소스 접근시 필요한 인증 방법 정의서버에서 요청을 받은 후 응답을 내려줄 때 같이 반환요청 과정클라이언트 측에서 서버에 G.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] 웹브라우저 요청흐름 ✔ 웹 서비스가 작동하기 위한 수 많은 약속들데이터를 주고받는 약속은 2가지로 구분이 된다TCP / UDPTCP/UDPTCP (전화기)1 : 1 연결만 가능데이터가 손실되면 재전송 요청을 하므로, 신뢰성 높음데이터의 순서와 무결성 보장속도가 상대적으로 느림높은 신뢰도를 요한 서비스에 적합UDP (라디오)1: N 연결 가능정보를 받았는지 확인치 않고 일방적으로 전송데이터의 순서와 무결성 보장하지 않음속도가 상대적으로 빠름IPTV, 실시간 스트리밍에 적합✔ 브라우저 요청 흐름https://www.google.com:443/생략 입력 시 어떻게 페이지를 반환하는 것인가?웹 브라우저 서버 요청 과정웹 브라우저는 DNS 서버 조회를 통해 200.200.200.2(구글 서버) 결과를 받는다위 조회를 통해 IP정보,.. 2023. 4. 25.
[모든 개발자를 위한 HTTP 웹 기본 지식 강의] HTTP 상태코드 ✔ HTTP 상태코드클라이언트가 보낸 요청의 처리 상태를 응답을 통해 알려주는 기능1xx (Informational)요청이 수신되어 처리중2xx (Successful)요청 정상 처리3xx (Redirection)요청을 완료하려면 추가 행동 필요4xx (Client Error)클라이언트 오류, 잘못된 문법등으로 서버가 요청 처리 불가5xx (Server Error)서버 오류, 서버가 정상 요청을 처리 못함만약 모르는 상태 코드가 나타나면?클라이언트가 인식할 수 없는 상태코드를 서버가 반환?클라이언트는 상위 상태코드로 해석 후 처리미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨ex)299 ??? → 2xx (Successful)451 ??? → 4xx (Client Error)599 ?.. 2023. 4. 25.