Contents
1. 웹 서버의 개념1️⃣ 웹 서버란?2️⃣ 클라이언트–서버 구조3️⃣ URL과 웹 서버4️⃣ 필기 (웹 서버의 탄생 배경)2. 팀 버너스리 (Tim Berners-Lee)1️⃣ 누구인가?2️⃣ 무엇을 만들었나?3️⃣ 왜 중요한가?3. HTTP (HyperText Transfer Protocol)1️⃣ HTTP란?2️⃣ 핵심 특징3️⃣ HTTPS4️⃣ 필기 (HTML에서 HyperText의 의미)4. DNS (Domain Name System)1️⃣ DNS 란?2️⃣ 왜 필요한가?3️⃣ 동작 흐름 (필기 기반)4️⃣ DNS 서버 예5️⃣ 필기5. 실습1️⃣ HttpUrlConnection 기본 사용법1. 웹 서버의 개념
1️⃣ 웹 서버란?
1) 개념
- 클라이언트(브라우저)의 요청(Request)을 받아 자원(Resource)을 HTTP 응답(Response)으로 돌려주는 프로그램(또는 그 역할을 하는 컴퓨터)
2) 자원(Resource)의 예
- HTML 문서
- 이미지, CSS, JS 파일
- JSON 데이터(API 응답)
서버는 “파일 자체”를 보내는 게 아니라, 파일의 “내용(byte)”을 보내준다
2️⃣ 클라이언트–서버 구조
1) 클라이언트
- 브라우저 (Chrome, Edge 등)
- 요청을 보냄 (URL 기반)
2) 서버
- 항상 대기 상태
- 요청이 오면 반드시 응답 (HTTP는 무응답 X)
3️⃣ URL과 웹 서버
1) 예시
http://IP:80/a/hello.html2) 구성
http→ 프로토콜
IP→ 서버 주소
80→ 포트 (HTTP 기본)
/a/hello.html→ 요청 자원 경로
➡️ 브라우저는 이 URL을 문자열로 받지만, 내부적으로는 객체로 파싱해서 네트워크 통신 수행
(이 과정은 라이브러리/브라우저가 처리)
4️⃣ 필기 (웹 서버의 탄생 배경)

2. 팀 버너스리 (Tim Berners-Lee)
1️⃣ 누구인가?
- 팀 버너스리 : 월드 와이드 웹(WWW)의 창시자
2️⃣ 무엇을 만들었나?
CERN에서 근무하며 다음 3가지를 제안 및 구현
- HTML
- 문서를 구조화하기 위한 마크업 언어
- HTTP
- 클라이언트–서버 통신 규칙
- URL
- 자원을 식별하는 주소 체계
핵심 철학:“전 세계의 문서를 링크로 연결하자”
3️⃣ 왜 중요한가?
- 문서 간 하이퍼링크 개념 도입
- 텍스트 → 클릭 → 다른 문서 이동
- 오늘날 웹, 검색엔진, 브라우저의 출발점
3. HTTP (HyperText Transfer Protocol)
1️⃣ HTTP란?
- 웹에서 클라이언트와 서버가 통신하는 규칙
- 텍스트 기반 프로토콜 (요즘은 바이너리 기반 HTTP/2,3도 사용)
2️⃣ 핵심 특징
1) 요청(Request) / 응답(Response)
- 클라이언트 → 요청
- 서버 → 응답
- 항상 요청이 먼저
2) Stateless (무상태)
- 서버는 이전 요청을 기억하지 않음
- 매 요청은 독립적
⬇️ 그래서 등장한 것
- Cookie
- Session
- JWT
3) 대표 요청 메서드
GET: 자원 조회
POST: 데이터 전송
PUT: 전체 수정
PATCH: 일부 수정
DELETE: 삭제
4) 포트
- HTTP : 80
- HTTPS : 443
3️⃣ HTTPS
- HTTP + TLS(암호화)
- 데이터 도청/변조 방지
- 인증서(CA) 기반 신뢰
➡️ 요즘 웹은 HTTPS 필수
4️⃣ 필기 (HTML에서 HyperText의 의미)

4. DNS (Domain Name System)
1️⃣ DNS 란?
- 도메인 이름 → IP 주소로 변환하는 시스템
- 인터넷의 “전화번호부”
2️⃣ 왜 필요한가?
- 사람:
naver.com
- 컴퓨터:
10.5.5.5
➡️ 사람이 IP를 외우기 어려워서 DNS 사용
3️⃣ 동작 흐름 (필기 기반)
- 브라우저에
naver.com입력
- DNS 서버에 질의
- DNS 서버가 IP 반환
- 해당 IP + 포트로 서버 접속
4️⃣ DNS 서버 예
1) 예시
- 구글 DNS:
8.8.8.8
- 통신사 DNS
- 회사/학교 내부 DNS
2) 특징
- DNS는 계층 구조
- 하나의 도메인은 여러 IP 가능 (로드밸런싱)
- IP 변경돼도 도메인은 유지 가능
5️⃣ 필기

5. 실습
1️⃣ HttpUrlConnection 기본 사용법
교재 p.739-740 17.2 인터넷에서 파일 다운로드하기
1) 교재 예제 - URLConnectionReader(p.740)
package com.mtcoding.ex10;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class URLConnectionReader {
public static void main(String[] args) {
try {
// 1. ip와 port를 통해 소켓을 만들고 스트림을 연결한다.
URL url = new URL("https://www.naver.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// 2. 버퍼를 달아야한다.
Scanner sc = new Scanner(conn.getInputStream());
String html = "";
while (sc.hasNextLine()) {
String line = sc.nextLine();
if (line == null) break;
html = html + line;
}
System.out.println(html);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}2) 결과


→ 이 데이터를 파싱해서 특정 정보를 찾아서 추출하는 것 어려움 → 문자열이기 때문에 (통신으로 다운받는 모든 데이터는 String) → html, JavaScript 언어 공부하면 파싱 가능
Share article