- Facts (사실, 객관)
: 오늘은 웹 서버랑 MariaDB에 대해서 배우고 일주일 동안 배웠었던 웹 서비스 구축에 대한 평가 시험을 보았다.
- Feelings (느낌, 주관)
: 계속 서버랑 클라이언트 연결 안되더니 갑자기 https 이 부분 실습할때부터 잘 돼서 실습 제대로 해 볼 수 있었다. 시험은 많이 헷갈려서 쫌 틀렸지만 ,,, 앞으로 더 열심히 해야지. MariaDB는 그냥 슥 훑는 정도로 진도 나갔다. - Findings (배운 점)
: 웹
- 웹 브라우저 내에서 보이는 콘텐츠
- 웹 프로세스의 시작은 클라이언트 웹 브라우저의 요청에서 시작
- HTTP : WWW를 통해 정보를 주고받을 수 있는 프로토콜로 주로 HTML 문서와 문서에 포함된 이미지 등 개체를 전송하기 위한 프로토콜
- 정적 콘텐츠 : 요청할 때 마다 데이터가 변경될 필요가 없는 고정 데이터
- 동적 콘텐츠 : 웹 페이지에 있는 게시판과 같이 사용자의 요청에 따라 다른 결과를 보여주는 것
- 웹 어플리케이션 모듈 : 웹 서버에서 전달된 페이지를 처리
웹 서버 구성
- ServerRoot : 웹 서버의 기본 디렉토리 위치 지정
- DocumentRoot : 웹 서버가 웹 서비스를 통해 표시할 디렉토리 지정
- Listen : 웹 서버가 페이지 요청을 수신할 네트워크 인터페이스 및 포트 지정
- Include, IncludeOptional : 주 설정 파일 외에 추가 설정을 가지고 있는 다른 파일을 설정에 포함
- User, Group : 웹 서버 프로세스를 구동할 사용자와 그룹을 지정
- ServerAdmin : 웹 서버 에러 발생 시 에러에 관한 메일을 수신할 서버 관리자를 지정
- <Directory> : 특정 경로에 대한 지시어의 그룹
- AllowOverride : .htaccess 파일에 포함된 설정 항목의 사용 여부 결정
- Require : 인증된 사용자가 권한을 부여받았는지 확인
- Options : 특정 디렉토리에서 사용할 수 있는 기능 설정
- <IfModule> : 특정 모듈의 포함 여부에 따라 조건부로 처리
- <File> : 특정 파일들을 대상으로 적용
- ErrorLog, LogLevel : 웹 서버의 오류 로그와 관련
- LogFormat : 로그에 포함할 항목과 로그 유형 지정
- CustomLog : 로그 저장경로와 로그 저장 시 사용할 로그 유형 지정
가상 호스트
- 구성에 따라 Apache 웹 서버가 여러 웹 사이트를 서비스하도록 구성
- 이름 기반 가상 호스트 (Name-Base Virtual Host) : 웹 서버에 접속할 때 사용하는 이름을 기반으로 웹 사이트를 구분하는 방식
- IP 기반 가상 호스트 (IP-Based Virtual Host) , 포트 기반 가상 호스트
- _default_ 가상 호스트 : 가상 호스트의 특정 주소 대신 _default_ 주소를 사용하여 모든 주소에 대한 접근 설정
CSR(Certificate Signing Request) 생성
- 서버 인증서를 발급받기 위해 필요한 서명 요구
URL
- ex) https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EB%A6%AC%EB%88%85%EC%8A%A4
- 프로토콜 : https, http, ftp, file + ://
- 웹 서버의 주소
- 포트 : 일반적인 웹 서비스는 80/TCP. 일반적으로 생략, 특정 포트 지정시 주소 뒤에 입력 ex) http://www.nobreak.co.kr:7777
- 자원의 경로 : 특정 페이지 또는 특정 자원 요청시 해당 자원의 디렉토리 경로
- 파라미터 : ? 기호 이후는 파라미터. 파라미터는 여러 항목의 조합. 각 항목은 변수이름=[값] 형태로 존재하며, 사이에 ‘&’ 기호를 사용하여 구분
URL Encoding(Percent Encoding)
- 서버 인증서를 발급받기 위해 필요한 서명 요구
- 한글 기준 1글자당 3Byte
- 인코딩 대상: 한글, 일본어, 한자 등 다국어, 일부 특수문자들(&,=,?...)
Base64 인코딩
- 인코딩을 통해 변환된 데이터가 글자로 표현될 수 있는 형태로 바꾸기 위한 인코딩
- 모든 데이터를 64개의 경우의 수를 가지는 데이터로 변환
- Base64 인코딩 과정
웹 서비스 흐름
- 클라이언트는 HTTP 요청을 통해 URL을 웹 서버에 전달
- 웹 서버는 클라이언트의 HTTP 요청을 접수
- 웹 서버는 자신이 가지고 있는 정적 컨텐츠를 클라이언트에게 전송
- 웹 서버는 동적 컨텐츠에 대한 요청을 접수할 경우, WA(Web Application)을 통해 처리하도록 요청을 전달
- 웹 어플리케이션(WAS 서버, WAM 모듈) 요청에 대하여 전달받고 실행
- 웹 어플리케이션은 주로 데이터베이스와 연결해서 필요한 내용을 작성
- 웹 어플리케이션은 생성된 결과를 웹 서버로 전달
- 웹 서버는 생성된 결과물을 클라이언트에게 HTTP 응답으로 전달
HTTP (HyperText Transfer Protocol)
- HTML(HyperText Markup Language) 및 관련 컨텐츠를 전송하기 위한 프로토콜
- HTTP 1.1 및 2.0을 주로 사용
Method
- HTTP 요청 시 HTTP 프로토콜의 첫 번째 부분에 명시된 요청 방식
- 대표적인 메소드 : GET, POST, HEAD
- TRACE, PUT, DELETE… 등 기타 메소드도 있음 : 대부분 비활성화하여야 함
GET
- 웹 서버에게 어떤 페이지를 달라고 요청할 때 사용
- 서버로 요청과 관련된 데이터를 보낼 때 파라미터를 사용
- 파라미터를 사용하기 때문에, 서버로 전달하는 값이 파라미터에 노출
- 파라미터로 서버로 전송할 수 있는 데이터의 길이는 제한이 있음
- 파라미터를 사용할 경우 서버에서의 처리가 간편
POST
- 웹 서버로 데이터를 전송하기 위한 용도로 사용
- 서버로 요청을 보낼 때 전달할 내용을 HTTP 본문으로 전송
- 보내는 정보가 URL의 파라미터로 노출되지 않음
- 많은 양의 데이터를 보낼 수 있음
- 서버에서는 GET보다는 처리하기에 부담
HEAD
- 헤더만 전송받기 위한 요청
- 테스트 용도
요청이 처리된 후 서버는 응답 : HTTP STATUS CODE, HTTP STATUS PHRASE
- 널리 알려진 주요 상태 :
- 404 NOT FOUND : 요청한 페이지가 웹 서버에 없음
- 403 FORBIDDEN : 요청한 페이지에 접근이 거부됨
- 200 OK : 정상적으로 처리됨
- 500 Server Error : 서버에서 페이지 처리시 에러
- 상태코드 대역별 의미 :
- 2xx: 정상적으로 처리됨
- 3xx: 이동됨, 캐시 이용
- 4xx: 클라이언트의 요청 에러
- 5xx: 서버의 처리 에러
'GOORM' 카테고리의 다른 글
GOORM: Kubernetes-22 (0) | 2021.11.23 |
---|---|
GOORM: Kubernetes-21 (0) | 2021.11.22 |
GOORM: Kubernetes-19 (0) | 2021.11.18 |
GOORM: Kubernetes-18 (0) | 2021.11.17 |
GOORM: Kubernetes-17 (0) | 2021.11.16 |
댓글