Web의 개요
- IT(Information Technology) 데이터의 관리와 처리에 대한 응용 기술
- WWW(World Wide Web) 인터넷으로 연결된 사용자들이 정보를 공유하는 공간
- 네트워크(Network) 컴퓨터와 컴퓨터를 연결해주는 망
- 프로토콜(Protocol) 컴퓨터간의 데이터 통신을 위한 통신규약
- IP주소(IP Adress) 컴퓨터가 통신하기 위한 고유한 주소
내 IP주소 확인하는 방법
명령 프롬프트(cmd)ㅡ>ipconfigㅡ>IPv4
- 포트번호(Port) 네트워크 서비스나 특정 프로세스 식별하는 논리단위
광주 동구 예술길 31-15(IP주소) 3층 스마트인재개발원 B강의장(포트번호)
223.130.200.104(IP 주소):80(포트번호)
- 도메인(Domain) 컴퓨터의 주소를 문자로 만든 주소, 네트워크 호스트 이름
www.naver.com www.google.com
DNS(Domain Name System) 도메인을 IP주소로 변환해주는 System
223.130.200.104 ㅡ> www.naver.com
142.250.76.142 ㅡ> www.google.com
- 서버-클라이언트 구조
- Web통신 흐름
- 정적/동적 페이지
네이버와같이 접속할때마다 화면이 바뀌는 페이지를 동적페이지라하고 누가 들어가든 항상 같은 페이지가 나오는 것을 정적 페이지라고한다
- Web통신 흐름
- 서버프로그램 WAS는 Web Application Server의 약자이다
클라이언트가 서버에 요청을하면 서버는 WAS에 데이터를 전송하고 WAS는 DB에 데이터를 처리및 가공해서 전달한 후 서버에 정적 페이지를 생성후 클라이언트에 응답하는 구조이다
Servlet
WAS
Request
클라이언트로부터 들어온 요청과 관련된 정보를 담고있는 객체이다
나의 페이지에 접속한 사람 확인하는 방법
1. 내 ip주소 확인하기
2. 2. 나의 페이지 주소 만들기
3. 나의 페이지에 접속한 ip주소 확인하기
request.getRemoteHost()
Request
클라이언트에게 응답할 정보들을 담는 객체
Request, Response실습
- 나의 페이지에 이미지 띄우기
- 나의 페이지를 우리팀과 다른 팀원에게 다른 페이지 보여주기
(추후 업로드 예정)
인코딩
인코딩(encoding) 문자를 코드로 변환
디코딩(decoding) 코드를 문자로 변환
EUC-KR vs UTF-8
컴퓨터에서 텍스트를 나타내는 두 가지 다른 문자 인코딩 방식
-
EUC-KR (Extended Unix Code-Korea):
- EUC-KR은 주로 한국어를 나타내는 문자 인코딩 방식입니다. 이는 유닉스 기반 시스템을 위해 개발되었으며, 오래된 한국 컴퓨터 시스템과 문서에서 사용되고 있습니다.
- EUC-KR은 가변 폭 인코딩 방식으로, 다른 문자를 나타내기 위해 서로 다른 바이트 수를 사용합니다. 일반적으로 ASCII 문자에는 1바이트를 사용하고 한국어 문자에는 2바이트를 사용합니다.
- 국제화에 대한 지원 측면에서 UTF-8만큼 다양하지 않아 국제화에 적합하지 않을 수 있습니다.
-
UTF-8 (Unicode Transformation Format 8-bit):
- UTF-8은 다양한 언어와 스크립트에서 나타낼 수 있는 문자를 대표할 수 있는 널리 사용되는 문자 인코딩 방식입니다. 이것은 모든 알려진 글쓰기 시스템의 문자를 포함하도록 설계된 유니코드 표준의 일부입니다.
- UTF-8도 가변 폭 인코딩 방식으로, ASCII 문자에는 1바이트를 사용하며 다양한 언어에서 다양한 문자를 나타내기 위해 최대 4바이트까지 확장될 수 있습니다.
- UTF-8은 매우 다재다능하며 웹 콘텐츠 및 현대 소프트웨어를 위한 권장 문자 인코딩 방식입니다. 다국어 지원을 원활하게 제공하며 인터넷에서 널리 사용되고 있습니다.
요약하면, EUC-KR은 한국어에 특화된 문자 인코딩이며 다양성 면에서 UTF-8보다 제한적입니다. 반면 UTF-8은 다양한 언어에서 다양한 문자를 나타낼 수 있으므로 현대 애플리케이션 및 국제화에 더 적합합니다. 대부분의 목적에서 텍스트 데이터를 처리할 때 UTF-8이 문자 지원이 다양하여 선호되는 선택입니다.
URL Mapping
Web Browser에서 Servlet을 동작시킬때 실제 Java클래스의 이름 대신, 특정 문자열을 만들어서 해당 문자열을 Servlet과 Mapping하여 동작하는 방법
- URL경로가 길어서 불편
- URL경로가 노출되어 보안상의 문제
- 즉 실제 Servlet
@WebServlet("/맵핑할 문자열")직접입력
URL Pattern
http(protocol)://localhost(host(domain):8081(port)/Servlet(contextPath)/Ex01Request?(servletPath)num=123(queryString)
- URL(Uniform Resource Locator) 통합 자원 지시자 : 네트워크상에서 자원의 정확한 위치
- URI(Uniform Resource Identifier) 통합 자원 식별자 : 네트워크상에서 자원의 고유한 식별자
- 500에러 : 문법 에러 -> 요청한 페이지의 문법, 코드 확인
- 404에러 : Not Found -> 보통 경로 문제, 요청하는 값이나 경로 확인