Web
개념
- 전자메일처럼 인터넷 상에서 동작하는 서비스 중 하나
- 인터넷에 연결된 컴퓨터 통해 사람들이 정보 공유할 수 있는 공간
구성
![](https://velog.velcdn.com/images/onetuks/post/dda0f599-751e-4054-993f-56bf6bf4b8df/image.png)
URI
uri1 : http://blog.example.com/entries/1
uri2 : http://psy:pass@devcourse.com:8080/search?lecture=5
URI 스키마
: http
사용자
: psy:pass
호스트명
: blog.example.com
포트번호
: 8080
패스
: /entries/1
쿼리 파라미터(쿼리 문자열)
: lecture=5
상대경로
- ./ : 현재 디렉토리
- ../ : 부모 디렉토리
URI에서 사용할 수 있는 문자 (ASCII 문자)
- 알파벳 대소문자
- 숫자 0-9
- 기호 -.:~@!&`()
HTTP
![](https://velog.velcdn.com/images/onetuks/post/35a17104-6a32-4ea4-88b1-7d0a3a248845/image.png)
특징
- TCP/IP 기반
- 요청/응답형 프로토콜
- 동기형 프로토콜 → 요청있으면 반드시 응답 발생
- stateless → 상태 저장하지 않기 때문에 매번 요청-응답마다 새로 연결
HTTP 메소드
Method | CRUD | summary |
---|
GET | READ | 리소스 취득 |
POST | CREATE | 서브 리소스 작성, 리소스 데이터 추가, 그 외 처리 |
PUT | UPDATE / CREATE | 리소스 갱신, 작성 |
DELETE | DELETE | 리소스 삭제 |
HEAD | | 리소스 헤더 취득 |
OPTIONS | | 리소스 지원 메소드 치득 |
TRACE | | 본인에게 요청 메시지 반환 테스트 |
CONNECT | | 프록시 동작 터널 접속으로 변경 |
HTML
- Hyper Text Markup Language
특징 2가지
- Hypermedia System → 하이퍼 링크 통해서 다른 자원으로 접근 가능
- Distributed System → 하이퍼 링크 통해서 자원 분산 가능
- 수 많은 서버에 분산 저장, 각각에서 자원 획득 가능
웹 어플리케이션 아키텍처
![](https://velog.velcdn.com/images/onetuks/post/fa8200d1-06d1-4408-8ec7-89697a44d22b/image.png)
- 아래에 있는 아키텍처 전체 흐름을 이해하는게 중요하다!
- DNS
- LOAD BALANCER
- WAS로의 작업을 여러 서버에 분배해 과부하 방지
- WAS
- 사용자 요청 처리
- json, xml 등 응답을 반환
- DB
- WAS와 직접 상호작용
- 계산 구성, 추가, 검색, 업데이터, 삭제, 수행 도구 제공
- CACHING SERVICE
- 이전 결과 참조해 계산을 빠르게 수행토록 지원
- JOB Q
- FULL TEXT SEARCH SERVICE
- 텍스트 기능, 검색을 지원하는 서비스
- 무조건 구현할 필요는 없다
- SERVICE
- WAS이 특정 수준에 도달했을때 서비스를 별도 앱 형태로 제공
- DATA WAREHOUSE
- 수집, 분석에 사용하는 데이터 작업 공간
- DB는 리소스에 대한 데이터 작업 공간
- CDN
- 콘텐츠 전송 시스템
- HTML 파일, CSS 파일, JS 파일, 이미지 등 자원을 빠르게 전송하기 위한 캐싱 개념
웹 서버 vs 웹 어플리케이션 서버
웹 서버
- http 프로토콜 지원하는 서버
- 정적 리소스를 지원하기 위한 서버
- 동적 리소스 지원하지 않음 (DB 접근 같은 건 안 함)
웹 어플리케이션 서버
- 동적 리소스 지원함 (DB 접근해서 동적인 결과를 반환)
- 웹 서버를 포함하게 구현할 수 있음
![](https://velog.velcdn.com/images/onetuks/post/1e73fac7-919f-416a-a074-db2efbab77b6/image.png)