728x90

서버 77

HTTP(Hyper Text Transfer Protocol)

HTTP(Hyper Text Transfer Protocol) 정의 웹 컨텐츠(HTML, 문서, 이미지, 파일 등)를 교환하기 위한 프로토콜 어떤 방식으로 데이터를 교환할 지 정해놓은 표준 규칙 연결 방식(HTTP 버전별 상이) 데이터 전송 방식(Method) 데이터 형식(Content - Type) 기능 다양한 클라이언트 - 웹서버 통신의 효율과 호환성을 높인다. 클라이언트 - 서버 간 데이터 통신은 다양한 방식으로 이뤄질 수 있다. 모든 클라이언트와 서버가 각각의 방식으로 데이터를 교환한다면 매번 방식이 달라서 번거롭고 복잡하다. HTTP는 통신 과정에서 모든 클라이언트와 웹서버가 표준적으로 사용할 규칙이다. Hyper Text로 분류되는 데이터를 교환하는 데 최적화 되어 있다. HTML 문서 CSS..

웹 서버

웹 서버 웹 서버란 무엇인가? 웹 서버는 웹 사이트를 구성하는 핵심 요소중 하나이다. 웹사이트를 방문할 때 사용자의 웹 브라우저는 웹서버에 요청을 보내고, 웹서버는 웹 페이지를 포함한 다양한 콘텐츠를 응답으로 전송하낟. 다음과 같은 역할 수행 웹 페이지 제공 : HTML, CSS, Javascript등 웹페이지를 구성하는 파일들을 저장하고 사용자의 요청에 따라 전송한다. 정적 콘텐츠 제공 : 웹 페이지에 포함된 이미지, 동영상, 음악 등 정적 콘텐츠를 저장하고 전송한다. 동적 콘텐츠 처리 : 서버 측 스크립팅 언어(PHP, Python, Ruby등)를 사용하여 동적으로 생성된 웹페이지를 제공한다. 보안 및 권한 관리 : 사용자의 접근 권한을 관리하고 웹사이트의 보안을 유지한다. HTTP 지원 : 웹 서버..

파일 식별자File Descriptor(FD)

File Descriptor(FD) 정의 운영체제가 파일, 소켓, 파이프등의 입출력 리소스를 관리하기 위해 생성해내는 비음수의 값이다. 프로세스가 각 리소스에 접근하려고 할 때 리소스에 대한 인덱스로 사용된다. 덕분에 프로세스는 리소스의 실제 물리적 위치를 몰라도, 인덱스를 통해 접근이 가능하다. 프로세스의 FD 활용 리소스 열기 프로세스가 open, socket 등의 system call을 사용해 리소스를 열면 운영체제는 해당 리소스에 대한 핸들을 생성하고, 이를 가리키는 파일 디스크립터를 프로세스에 반환한다. 리소스 조작 프로세스가 read, write, send, recv 등의 system call로 리소스를 조작할 때, fd값을 인자로 운영체제에 제공해야 한다. 운영체제는 이 fd를 통해서 해당 ..

소켓/소켓 API

소켓/소켓 API 소켓 API 정의 System call API 중 하나이다. 운영체제가 응용프로그램에게 제공하는 통신용 인터페이스다. 역할 컴퓨터 하드웨어의 네트워크 통신장치를 응용프로그램이 간접적으로 이용할 수 있게 해준다. 소켓 정의 응용프로그램에 설치하는 데이터 송수신 출입구 사용하는 이유 응용프로그램은 응용프로그램의 일만 처리하도록 하기 위해서 사용한다. 응용프로그램이 데이터 송수신을 위한 각종의 일을 직접 수행할 필요가 없다. 통신의 업무는 운영체제의 네트워크 스택이 해준다. 네트워크 스택이 하는 일 데이터의 패킷화 주소 지정 라우팅 전송 오류 처리 컴퓨터가 데이터들을 송수신할 때, 꼬이지 않게 해준다. 컴퓨터 내에서 실행되는 다양한 프로세스가 엄청난 양의 데이터 송수신을 일으키는데, 운영체제..

OSI 7계층 & TCP/IP 4계층

OSI 7 계층 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 계층을 나눈 이유 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 흐름을 한눈에 알아보기 쉽고, 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다. 계층 단계 1계층 - 물리계층(Physical Layer) 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다. 통신단위는 비트이며 이것은 1과 0으로 나타내어지는, 전기적으로 on,off상태를 의미한다. 단지 데이터를 전달만 할뿐 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경을 쓰지 않는다. 단지 데이터 전기적인..

CSAPP 12-12.3

CSAPP 12. 동시성 프로그램 논리적 제어흐름은 이들이 시간적으로 중첩되면 동시적이다. 이와 같은 현상을 동시성이라고 한다. 응용수준 동시성은 다양한 경우 유용하다. 느린 I/O 디바이스 접근하기 : 응용프로그램은 유용한 작업을 I/O요청과 겹치게 한다. 사람들과 상호 작용하기 : 사용자가 어떤 동작을 요청할 때 마다, 이 동작을 수행하기 위해 별도의 동시성의 논리 흐름이 생성된다. 작업을 지연시켜서 시간지연 줄이기 : 다른 동작을 지연시키고 이들을 동시에 수행해서 특정 독작의 시간 지연을 축소하기 위해 동시성을 이용한다 다수의 네트워크 클라이언트 처리 : 클라이언트마다 별도의 논리흐름을 생성하는 동시성 서버 멀티코어 머신에서 병렬로 계산하기 동시성 프로그램을 만들기 위한 세 개의 기본 접근방법 프로..

책/CSAPP 2024.02.19
728x90