728x90
1. Web 기초
1. HTTP(Hypertext Transfer Protocol)
웹 상에서 웹 서버 및 웹 브라우저(클라이언트) 상호 간의 데이터 전송을 위한 응용(계층 프로토콜
텍스트 기반 응용수준 프로토콜로 주로 HTML 문서를 주고받는데 사용된다.
< 참고 > https://ko.wikipedia.org/wiki/HTTP
- 웹 서버 포트 번호 : 80
- 요청/응답(Request/Response) 프로토콜
- 클라이언트 → 서버 : 콘텐츠 요청
- 서버 → 클라이언트 : 요청받은 콘텐츠로 응답
- 🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=4884&id=902
- HTTP Method
- 클라이언트가 웹 서버에게 요청하는 목적 및 그 종류를 알리는 수단
- GET : 리소스 요청
- HEAD : 메세지 헤더 요청
- POST : 내용 전송
- PUT : 내용 갱신
- DELETE : 파일 삭제
- OPTIONS : 웹 서버 측에서 제공하는 메소드에 대한 질의
- TRACE : 요청 리소스가 수신되는 경로 요청
- CONNECT : proxy와 같은 중간 서버 경우
- 🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=3791&id=902
- URI(Uniform Resource Identifier)
- 인터넷 응용 정보 자원에 대한 통일적 식별 체계를 지칭
- 하위 개념
- URL(Uniform Resource Locator) : 특정 자원이 있는 장소에 대한 경로
- URN(Uniform Resource Name) : 특정 자원에 대한 이름
- URC(Uniform Resource Charcteristic) : 특정 자원에 대한 특성 정보
- 🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=2340&id=637
- HTTP 요청
- 요청 행 구성
- Method : GET, POST, OPTIONS 등
- URI : / + 상대 URI
- 상대 URI : 전체 경로 중 기준 URI로부터 상대적 경로 표현
- 구분자
- / : 문서 경로
- ? : query parmeter
- # : URL fragment
- Version : HTTP version
- ex) GET / HTTP/1.1
- HTTP 응답
- 응답 행 구성
- status code
- 3bit 양수로 요청의 특성을 나타낸다
- 1xx : 처리 중
- 2xx : 성공
- 200 : OK
- 3xx : 정상 처리의 범주 내 알려주는 내용(주로, redirect)
- 301 : Moved Permanently (요구한 데이터를 변경된 URL에서 찾음)
- 4xx : 클라이언트측 에러
- 400 : Bad Request(요청 오류)
- 403 : Forbidden(금지됨, 접근 제한)
- 404 : Not Found(요청 리소스 존재하지 않음)
- 5xx : 서버측 에러
- 501 : Not Implemented(필요한 기능에 서버에 설치되지 않음)
- 505 : HTTP Version Not Supported(해당 HTTP 버전을 제공하지 않음)
- 🔗 https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
- 🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=5407&id=902
- status phrase
- 에러 코드를 영어로 나타낸다
- status code
2. Web content
the text, visual or audio content that is made available online and user encountered as part of the online usage and experience on websites.
웹 사이트에서 온라인 사용 및 경험의 일부로 온라인에서 사용할 수 있도록 하고 사용자가 접하는 텍스트, 시각 또는 오디오 콘텐츠.
< 참고 > https://en.wikipedia.org/wiki/Web_content
- HTML(Hypertext Markup Language)
- 웹 콘텐츠 작성 언어
- 명령들(태그)를 포함하고 있어서 브라우저에게 여러가지 텍스트와 그래픽 객체를 어떻게 표시할지를 알려준다.
- 클라이언트와 서버에게 content란?
- 연관된 MIME 타입을 갖는 바이트 배열
※ 참고 ※
MIME (Multipurpose Internet Mail Extensions)
전자우편을 위한 인터넷 표준 포맷
MIME 표준에 정의된 content-type은 HTTP와 같은 통신 프로토콜에서 사용
🔗 https://ko.wikipedia.org/wiki/MIME
🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=650&id=476
content-type = media type = MIME type
: 인터넷에 전달되는 파일 포맷과 포맷 콘텐츠를 위한 2부분 식별자
유형(type) / 아형(subtype); 선택적 매개변수
현재 최상위 유형 이름 : application, audio, example, font, image, message, model, multipart, text, video
🔗 https://ko.wikipedia.org/wiki/미디어_타입
🔗 http://www.ktword.co.kr/test/view/view.php?m_temp1=6431&id=1515
- content
- 정적 콘텐츠
- 디스크 파일
- 파일을 클라이언트에게 돌려주는 작업 = 정적 콘텐츠를 처리한다.
- 동적 콘텐츠
- 실행파일이 런타임에 만든 출력
- 프로그래을 실행하고 그 결과를 클라이언트에게 보내주는 과정 = 동적 콘텐츠를 처리한다.
- 정적 콘텐츠
- URL(Universal Resource Locator)
- 웹 서버가 관리하는 파일이 가지는 고유의 이름
- 인터넷에 존재하는 자원의 위치와 그 접근 방법을 지정하기 위한 것
- 🔗 http://www.ktword.co.kr/test/view/view.php?nav=2&no=867&sh=url
- URL이 정적, 동적 콘텐츠를 참조하는지 결정하기 위한 표준은 없다
- 각각의 서버는 자신이 관리하는 파일들을 위한 자신만의 규칙을 가진다.
- 가장 고전적인 방법은 디렉토리 집합을 지정한다.
- ex) usr/httpd/html : 모든 정적 콘텐츠 저장 / usr/httpd/cgi-bin : 모든 동적 콘텐츠 저장
3. 동적 콘텐츠 처리
CGI (Common Gatewqy Interface)
: 웹서버 프로그램과 외부 응용 프로그램 간의 인터페이스
서버 프로그램과 외부 프로그램과의 연계법을 정한 것
< 참고 > https://ko.wikipedia.org/wiki/공용_게이트웨이_인터페이스
- 클라이언트 → 서버 요청
- ? : 파일 이름과 인자 구분
- & : 인자 구분
- ex) GET cgi-bin/addr>15000&213 HTTP/1.1
- GET 요청
- cgi-bin/addr 실행파일에
- 15000과 213 2개의 인자 전달
- 자신의 동적 콘텐츠를 표준 출력으로 보낸다.
728x90
'KraftonJungle2기 > Today I Learned' 카테고리의 다른 글
[TIL] Proxy 개념 정리 (0) | 2023.05.24 |
---|---|
[TIL] CSAPP 11장 공부4 - tiny 서버 정리 (0) | 2023.05.22 |
[TIL] CSAPP 11장 공부2 - 예제 echo 서버 (1) | 2023.05.20 |
[TIL] CSAPP 11장 공부 - 네트워크 (2) | 2023.05.19 |
[TIL] CASPP 9장 공부5 - 간단한 할당기3(segregated) (0) | 2023.05.17 |