일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 연결리스트
- project3
- anonymous page
- 다익스트라
- c#
- 크래프톤정글4기
- KRAFTON JUNGLE
- 크래프톤정글
- 이벤트 함수 실행 순서
- TiL
- 티스토리챌린지
- 핀토스
- pintos
- 추상클래스와인터페이스
- 크래프톤 정글
- kraftonjungle
- 백준
- 전쟁-전투
- Unity
- 파이썬
- C
- BFS
- 네트워크
- 4기
- 크래프톤 정글 4기
- 알고리즘수업-너비우선탐색2
- 오블완
- 유니티
- User Stack
- 알고리즘
- Today
- Total
말감로그
CGI/Webserver/MIME Type 본문
💡 웹 서버(Web Server)
클라이언트가 브라우저 주소창에 url을 입력하여 어떤 페이지를 요청하면, http 요청을 받아들여 HTML 문서와 같은 정적인 웹 페이지를 사용자에게 전달해주는 역할을 한다.
정적 웹 서버
- 서버에 존재하는 이미 저장된 파일(HTML, CSS, 이미지, JavaScript 파일 )을 브라우저에게 전송
- 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 된다.
- ex) 배너 광고나 카테고리 등
동적 웹 서버
- 정적 웹 서버와 어플리케이션 서버(AS)로 구성
- AS는 웹 서버에서 처리하지 못하는 동적 데이터에 대응하기 위해 만들어진 어플리케이션 서버(데이터베이스 조회, 로직 처리 등)
- ex) 마이 페이지, 장바구니 등
WAS (Web Applcation Server)
- 웹 서버 단독으로 처리할 수 없는 데이터 베이스의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공해준다.
- 인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어로 볼 수 있다.
- 대표적인 웹 서버 - Tomcat (자바 서블릿 실행하기 위한 서블릿 컨테이터 제공)
💡 CGI(Common Gateway Interace)
CGI는 위에서 설명한 AS(어플리케이션 서버) 개념과 유사하다.
- 공통 게이트웨이 인터페이스의 약어로, 웹 서버에서 동적인 페이지를 보여주기 위해 임의의 프로그램을 실행할 수 있도록 하는 기술이다.
-> 웹 서버가 클라이언트에게 응답을 보내기 위해 사용자가 만든 어플리케이션과 통신 해야 하는데 그것을 도와주는 인터페이스라고 봄
✉️ MIME( Multipurpose Internet Mail Extensions)
- Multipurpose Internet Mail Extensions의 약자로 간단하게 파일변환을 뜻한다.
- 이메일과 함께 동봉할 파일을 텍스트 문자로 전환해서 이메일 시스템을 통해서 전달하기 위해 개발되었다고 한다.
- 현재는 웹을 통해서 여러 형태의 파일을 전달하는 데 사용되고 있다.
초기에는 UUEncode를 사용하여 인코딩하였다.
UUEncode(Unix to Unix Encode)이란?
보통의 텍스트 파일을 컴퓨터 간 주고받을 때는 ASCII 공통 표준을 따르면 되므로 문제가 없지만, 네트워크를 통해 아스키가 아닌 바이너리 파일(음악, 그림, 영상 파일 등)들을 보내야 하는 상황이 생겼다.
아스키와 같이 7비트를 사용하는 것이 아닌 8비트 모두 사용한다는 특징 때문에 8비트 데이터를 주고 받아야 하는 이슈가 생겼다. 따라서 바이너리 파일을 다시 7비트의 아스키 문자 데이터의 변환이 필요했다.
- 바이너리 파일 -> 텍스트 파일 변환 - 인코딩 (Encoding)
- 텍스트 파일 -> 바이너리 파일 변환 - 디코딩 (Decoding)
✉️ 그럼 MIME 왜 등장했어?
바로 UUEncode의 단점을 보완하기 위해 만들어졌다.
문서의 끝 부분의 공백이 사실 공백이 아니라 변환되어야 할 값인데 공백을 무시하는 시스템의 경우에 파일을 그대로 전달받을 수 없었다는 것 등등의 단점이 있었다.
MIME은 기존 UUEncode방식에는 없었던 Content-type 정보를 파일의 앞부분에 담을 수 있다.
'지금 전달하는 이 파일은 GIF 파일이다' 처럼 그 파일의 종류를 나타내는 딱지를 붙일 수 있었던 것이다.
-> 브라우저는 데이터를 나타내는데 어떤 종류의 파일 스트림인지 알 수 있다.
Content-type?
- 웹 서버에서 HTTP 통신을 통해 전달받은 요청의 Header 내에서, 해당 요청의 데이터 타입에 대한 정보를 나타낸다.
✉️ MIME type
- 인터넷에 전달되는 파일 포맷 및 포맷 컨텐츠를 위한 식별자
- type/subtype 구조
ex)
HTML 페이지에서 text/html
이미지 파일 image/jpeg , image/gif
음악 파일 audio/mpeg
어플리케이션 application/pdf
참조
'이론 > 네트워크' 카테고리의 다른 글
[네트워크] 클라이언트-서버 모델 (0) | 2024.02.23 |
---|---|
[네트워크] TCP/UDP (1) | 2024.02.22 |
[네트워크] OSI 7계층, TCP/IP 4계층 (0) | 2024.02.22 |