본문 바로가기

C언어11

Proxy 서버 웹 프록시는 웹 브라우저와 최정 서버 사이에서 중개 역할을 하는 프로그램.브라우저는 프록시에 연락하고 프록시는 요청을 최종 서버로 전달.최종 서버가 프록시에 응답하면, 프록시는 응답을 브라우저로 전송 사용처방화벽 뒤의 브루어저가 프록시를 통해서만 방화벽 너머의 서버와 접속할 수 있도록 함모든 식별 정보를 제거하여 익명화 도구로 작용할 수 있다웹 객체를 캐시하여 서버로부터의 객체의 로컬 복사본을 저장하고, 이후에 캐시에서 읽어 응답 간단한 HTTP 프록시 구현1. 프록시를 설정하여 들어오는 연결을 수락,    요청을 읽고 파싱,    웹 서버로 요청을 전달    서버의 응답을 읽어 해당 클라이언트로 응답을 전달2. 여러 동시 연결을 처리하도록 업그레이드 ( 동시성 처리 )3. 최근에 접근한 컨텐츠의 간단한.. 2024. 9. 20.
Tiny 구현 main 함수웹 서버가 클라이언트의 요청을 처리하기 위한 전형적인 서버 루프를 구현// argv: 문자열 포인터의 배열int main(int argc, char **argv) { // listenfd: 리스팅 소켓 파일 드스크립터, connfd: 클라와 연결을 위한 소켓 파일 디스크립터 int listenfd, connfd; // 호스트 및 포트 저장할 버퍼 char hostname[MAXLINE], port[MAXLINE]; // 클라 주소 길이 저장 변수 socklen_t clientlen; // 클라 주소 저장할 구조체 struct sockaddr_storage clientaddr; /* 명령줄 인수 확인 (하나의 인수만 요구 (제목 포함 2))*/ if (argc != 2) { .. 2024. 9. 18.
Tiny 웹 서버 개요 Tiny 웹 서버는 네트워크 프로그래밍의 핵심 개념을 통합하여 실제 웹 서버의 기본적인 기능을 구현한 간단한 서버이다. 목적 :웹 서버 구현의 핵심 개념을 보여주기 위해 설계.프로세스 제어, 유닉스 I/O 작업, 소켓 사용, HTTP 요청 처리 개념핵심 구성 요소 :프로세스 제어 : 들어오는 연결을 처리하기 위해 새로운 프로세스 생성하며,기본적인 프로세스 생성 및 관리유닉스 I/O : 데이터 읽기 및 쓰기소켓 인터페이스 : 네트워크 연결 관리하기 위해 구현HTTP 프로토콜 : HTTP 요청을 파싱하고 응답을 처리하여 정적 컨텐츠와동적 CGI 요청을 모두 처리 주요 함수 및 개념Open_listenfd :리스닝 소켓을 생성하고 지정된 포트에 바인딩. 서버가 들어오는 연결을 수락할 준비Accept :클라이언.. 2024. 9. 17.
network 개요 client : 컴퓨터 노트북 핸드폰server : 공유기, DNS, IP할당기 client 와 server 통신 방법도메인 입력도메인 네임에 해당하는 IP 주소 찾음HTTP 프로토콜을 사용해 URL 정보와 IP주소를 포함하는 HTTP 요청(Request) 메시지 생성.메시지는 패킷으로 분할되어 TCP 프로토콜을 사용해 인터넷 망을 통해 해당 IP주소의 컴퓨터(서버)로 전송메시지 받은 서버는 웹 페이지 URL정보 중 PATH와 HTTP Method에 맞는 액션 취함생성된 응답 데이터는 다시 HTTP 프로토콜을 써서 메시지를 만들고 클라이언트로 전송도착한 메시지는 브라우저에 의해 rendering 과정을 거쳐 출력  HTTP 프로토콜  특징단방향성서버는 클라이언트가 요청을 보내야만 응답 가능비연결성클라이언.. 2024. 9. 16.
C 기본 int main()젤 첨 실행되는 함수 return 0;함수 바깥으로 값을 전달하는 반환값 부분 % : 서식 지정자 - 문자열을 출력할 때 값으로 바뀌는 부분{}   : 코드 범위 자료형char, short, int, long  - 정수float, double              - 실수void                           - 형태가 없는 자료형 (포인터, 함수의 반환값) 단축키Ctrl + F5    : 실행F5               : 디버깅 시작Shift + F5  : 디버깅 중지F7               : 컴파일F9               : 중단점 삽입/삭제F10             : 프로시저 단위 실행F11             : 한 단계씩 코드 실행 부호 .. 2024. 9. 7.