CS/네트워크 11

[네트워크] HTTP (무상태성, 비연결성)

HTTP HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜 hypertext 문서 간의 링크를 통해서 연결할 수 있는 html을 전송하는 프로토콜로 시작 지금은 html 텍스트 뿐만 아니라 http 메시지에 모든 것을 전송 http1/1.1 이 가장 많이 사용되는 버전 2, 3은 성능 개선에 초점 1.1이나 2는 tcp 프로토콜 위에서 동작 3은 udp 기반으로 개발됨 tcp 프로토콜이 속도가 느리기 때문에 성능 개선을 위해 udp 프로토콜 위에 애플리케이션 레벨에서 최적화도록 새로 설계된게 HTTP3 클라이언트 서버 구조 HTTP는 클라이언트 서버 구조로 되어있다. 양쪽이 독립적으로 진행할 수 있게 된다. Request Response 구조 클라이언트는 서버에 요청을 보내고, 응답을 대..

CS/네트워크 2024.01.31

[네트워크] GET 과 POST의 차이

HTTP 메소드 중 GET 과 POST에 대해 자세히 살펴보려 한다. GET 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메서드 데이터를 읽거나, 검색할 때 사용된다고 할 수 있다. GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 query string이라고 부른다. 파라미터인 name1과 name2를 통해 값을 전달 받을 수 있다. 요청 파라미터가 여러개면 &로 연결한다. ex) www.example.com/show?name1=value&name2=value2 특징 캐시가 가능하다. GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드 하는 대신 리소스의 복사본을 반환한다. HTTP 헤더를 통해 캐..

CS/네트워크 2023.04.12

[네트워크] URI와 웹 브라우저 요청 흐름

URI(Uniform Resource Identifier) "URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다" URI 단어 뜻 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL, URN 단어 뜻 URL-리소스의 위치를 지정 URN-리소스의 이름을 부여 (URN이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화되지 않음) URI와 URL을 같은 의미로 봐도 무방하다. (URI가 URL을 포함하기 때문에) URL 문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] EX)https:/..

CS/네트워크 2023.02.05

인터넷 네트워크 (IP, TCP/UDP, PORT, DNS)

인터넷 네트워크 내 PC가 메세지를 전달해야 하는 PC가 멀리 떨어져있다면 수많은 중간 노드로 이루어진 인터넷 망을 통해 보내야 한다. 안전히 목적지에 메세지를 도착하게 하려면 IP주소가 필요하다. IP(인터넷 프로토콜) 인터넷 환경에서의 통신규약. 지정한 IP주소에 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 패킷안에는 출발지 IP, 목적지 IP 등등 이 포함되어있다. 패킷 전달 과정 클라이언트에서 출발지, 목적지 IP 주소가 담긴 IP 패킷을 만들어 인터넷에 전달한다. 노드끼리 주소를 확인하여 목적지까지 도착한다. 서버에서는 메세지를 받았을 경우 IP 패킷을 다시 클라이언트에게 보낸다. 그런데 IP 프로토콜에는 한계가 있다. 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다..

CS/네트워크 2023.02.04

[네트워크] 웹 액세스의 흐름, HTTP 프로토콜

웹 액세스의 흐름 유저가 웹 브라우저에 URL을 입력한다. URL로 지정한 웹 서버에게 HTTP 요청을 송신한다. URL에는 호스트명이 지정되기 때문에 DNS 서버에 IP주소를 질의하여 알아낸 뒤 TCP 연결이 맺어지고 HTTP 요청이 웹 서버로 송신된다. 웹 서버가 HTTP 요청을 해석한다. 웹 서버가 요청받은 파일을 웹 브라우저에 돌려보낸다. 보통 이 파일은 HTML 파일에 해당한다. 웹 브라우저가 수신한 데이터를 해석해서 웹 브라우저상에 표시한다. HTML(HyperText Markup Language): 웹 사이트의 내용을 기술하기 위해 사용되는 언어 HTTP(HyperText Transfer Protocol): 웹 서버로부터 파일을 전송받기 위해 사용되는 프로토콜 URL(Uniform Resou..

CS/네트워크 2022.12.22

[네트워크] TCP와 UDP

포트 번호 PC나 서버상에서 동작하는 애플리케이션을 식별하기 위한 정보 IP 주소로 지정한 컴퓨터에 전송된 데이터는 포트 번호로 지정된 애플리케이션에 다시 분배된다. 포트 번호 숫자의 범위에 따라 분류됨 잘 알려진 포트: 서버 애플리케이션을 식별하기 위해 사용 ex) 80(HTTP), 53(DNS) 등록된 포트: 자주 이용되는 애플리케이션 용 포트로 등록된 포트 번호 ex)8080 동적/개인적 포트: 클라이언트 애플리케이션을 식별하기 위한 것 애플리케이션에서 통신이 발생할 때마다 OS로부터 자동으로 할당되며 통신이 종료되면 할당이 해제 된다. => 포트 번호 할당은 고정적이지 않다. 애플리케이션이 포트 번호 기반으로 데이터를 수신할 때에는 TCP 또는 UDP라는 프로토콜을 이용한다. TCP(Transmi..

CS/네트워크 2022.12.11

[네트워크] DNS의 구조

DNS(Domain Name System) 호스트명(컴퓨터의 이름)과 IP 주소를 매핑해주는 시스템 이름 해석의 주요 시스템 중 하나 네트워크상에서 통신을 할 때 반드시 상대의 IP 주소를 지정해야 하는데 IP주소는 기억하기 어려워 호스트명으로 통신 상대를 지정한다. 이름 해석: 호스트명으로 IP주소를 나타내는 시스템 DNS 서버에 네임 쿼리를 송신해서 목적 호스트명의 매핑된 IP주소를 질의하는 과정 PC가 웹 서버에 접근할 때 자동으로 DNS 서버에 질의 구조 리소스 레코드: 호스트명과 IP주소의 매핑. DNS로 이름을 해석하기 위해 등록해야 함 도메인: 호스트명의 집합. 계층화하여 관리 존: DNS 서버에 등록된 리소스 레코드의 집합 동작 호스트명에 매핑할 IP 주소의 정보를 DNS 서버에 등록해두면..

CS/네트워크 2022.12.11

[네트워크] IP 주소란?

IP 주소 PC나 서버와 같이 TCP/IP로 통신하는 기기를 식별하기 위한 주소 호스트: TCP/IP로 통신하는 기기 ex)PC,서버,라우터 32비트로, 네트워크 ID와 호스트 ID로 구성 IP주소를 클래스로 나눠 어디까지가 네트워크ID이고 호스트 ID인지 판별할 수 있다. 이렇게 클래스에 기초한 IP주소를 클래스풀 주소라고 하는데, 이는 IP주소의 이용 효율이 나쁘기 때문에 서브넷 마스크를 사용한다. 서브넷 마스크: IP주소의 네트워크 ID와 호스트 ID가 구분되는 위치를 나타낸다. 네트워크 ID와 호스트ID를 구분하는 위치를 유연하게 설정할 수 있다. 공인 IP 인터넷상에서 중복되지 않은 IP 주소. 인터넷 통신을 하기 위해 필요하다. 인터넷에서 사용한다. 사설 IP 외부와 연결되지 않는 네트워크(홈..

CS/네트워크 2022.12.11

[네트워크] 네트워크의 종류, 형태, 구성

네트워크의 구성 요소 네트워크는 컴퓨터, 네트워크 장비, 전송 매체로 이루어져 있다. 컴퓨터: 데이터를 송수신하는 애플리케이션이 구동 PC나 서버 네트워크 장비: 데이터를 전송하기 위한 기기 라우터(네트워크를 서로 연결) 스위치(네트워크 내부의 데이터 전송) 전송 매체: 컴퓨터와 네트워크 장비를 연결 유선(케이블) 무선(전파) 홈 네트워크를 인터넷에 연결하려면 홈 네트워크를 인터넷에 연결하기 위해 ISP와 인터넷 공급 계약을 맺어야 함 홈 네트워크와 인터넷(계약을 맺은 ISP와의 사이)는 브로드밴드 라우터에 의해 연결되어 있음 ISP(Internet Service Provider): 인터넷 접속을 제공하는 기업 브로드밴드 라우터: 인터넷에 연결하는 기능을 가진 개인용 라우터 LAN LAN(Local Ar..

CS/네트워크 2022.12.11

[네트워크] soket API의 흐름

소켓이란, TCP/UDP IP 환경에서 통신을 위한 통로이다. 소켓 주소는 IP+Port 번호로 구성되어있다. 데이터 통신은 TCP 통신과 UDP 통신이 있다. TCP 통신은 연결형으로, 데이터 교환 전에 연결 설정을 하고 교환 후에 연결을 해제한다 UDP 통신은 비연결형으로, 연결이 필요없이 데이터 교환이 이루어진다. TCP 통신에서의 Socket API 흐름을 살펴보겠다. 연결 설정 1. sd = socket() 서버 측에서 소켓을 생성한다. 2. bind(sd) 서버가 사용할 IP 주소와 포트 번호를 생성한 소켓에 결합(bind)시킨다. 3. listen(sd) 서버는 클라이언트로부터 연결 요청이 수신되는지 주시(listen)한다. 4. client_fd = accept(sd, addr, ..) 요..

CS/네트워크 2021.09.18