// 불펌스크립트시작 // 불펌스크립트 끝

1. HTTP ( Hyper Text Transfer Protocol )

- OSI 7계층인 응용 계층에 속하는 프로토콜로 주로 HTML 문서를 주고 받는데 쓰인다.

- 클라이언트인 웹 브라우저가 서버에 웹 페이지나 그림 정보를 요청하면 서버는 이 요청에 응답하여 필요한 정보를 클라이언트에게 전달한다.

- HTTP는 TCP로서 80포트를 이용한다.

- 1996년에 1.0 버전이 발표, 1999년에 1.1 버전이 발표

 

2. URL ( Uniform Resource Locator )

- 네이버 사이트에 방문하고 싶다면 웹 브라우저를 실행시켜 주소 표시줄에 http://www.naver..com이라고 입력한다.

- 무심결에 사용하는 이 주소가 URL이며, 여기에는 많은 정보가 포함되어 있다.

 

⊙ URL의 기본 구조

프로토콜://주소(또는 IP) : 포트번호/경로 또는 파일? 파라미터=값

 

ex)

http://search.naver.com/search.naver?sm=tab_hty&where=nexearch&query=URL

 

항목

설명

프로토콜

 http://

 http라는 프로토콜을 사용하겠다는 뜻이다.

 FTP를 사용하고 싶다면 ftp://로 시작하면 된다.

 (ftp://ftp:kaist.ac.kr/을 주소창에 입력하면 파일과 폴더 리스트가 보일 것이다.)

주소

 search.naver.com

 일반적으로 웹 주소라 불리는 도메인이다.

 네임 서버에서 해당 도메인을 IP로 변환시켜 서버에 접속하도록 해준다.

경로나 파일

 search.naver

 search.naver 파일을 읽어온다.

파라미터

 ?sm=tab_hty&where=

 nexearch&query=URL

 search.naver 파일에 전달되는 값을 뜻한다.

 변수 sm에 tab_query라는 값을, 변수 where에 nexearch라는 값을, 변수 query에 URL이라는 값을 전달

 

3. 클라이언트와 서버

- 어떤 웹 사이트를 방문하여 성공적으로 그 페이지를 보고 있다면, 이는 클라이언트(PC)에서 보낸 요청에 대해 서버가 제대로 응답을 한 것이 된다.

 

 

▶ 요청 ( Request )

- 클라이언트가 웹 서버로부터 정보를 받고자 할 때 보내는 메시지

- method, header, entity body의 3부분으로 구성

- 클라이언트는 지정된 포트 번호(기본으로 80)로 서버에 접근하여 명시한 요청을 보낸다.

- 예를 들어, 네이버에 URL이라는 단어로 검색을 하면 아래와 같은 요청 메시지가 웹 서버에 전송된다.

 

구성요소

세부 내용

method

 (GET이나 POST 등) (경로 및 파일명) (HTTP 프로토콜 버전)

header

 (Accept:) (응답 메시지에 대해 허용할 수 있는 미디어 종류)

 (Accept-Language:) (응답에 대해 선호하는 언어)

 (Cookie:) (클라이언트에서 가지고 있는 정보)

 (User-Agent:) (응답 내용에 대해 응답할 수 있는 브라우저 종류)

 (HOST:) (응답을 요청한 호스트)

 (Proxy-Connection:) (프록시 연결을 사용함)

entity body

 POST 메소드를 사용하여 웹 서버에 요청 시 id나 password와 같은 전달할 값을 포함할 수 있음

 

⊙ GET

- GET는 http가 사용하는 메소드(method)의 한 종류로서 클라이언트가 서버에 문서를 요청하고 MINE(Multipurpose Internet Mail Extensions) 형식으로 표현되는 사항을 덧붙일 수 있다.

 

 

⊙ POST

- 클라이언트가 서버에 요청할 때 일반적으로 GET와 POST가 많이 사용되는데 POST는 파라미터 값이 URL을 통해 전송되지 않는다는 차이점

- POST 메소드를 사용해서 POST /board/login_ck.asp HTTP/1.1으로 URL만 지정하고 나머지 서버에 요청할 데이터와 관련된 파라미터 등을 HTTP 헤더 다음에 있는 몸체(body) 부분에 덧붙인다.

 

 

- 다른 메소드도 사용되므로 알아두자

 

메소드

설명

HEAD

 자료에 대한 헤어 정보(meta-information)만을 받음

GET

 URL에 해당하는 자료의 전송을 요청

 URL 정보로 해당 페이지에 바로 접근 가능

POST

 데이터의 크기에 제한없이 서버가 처리할 수 있는 자료를 전송

PUT

 클라이언트에서 전송받은 정보를 서버에 저장

DELETE

 해당 URL의 자료를 삭제

TRACE

 실제 본문을 요청한 상태를 다시 요청. 주로 디버깅에 사용함

OPTIONS

 어떤 옵션이 있는지 묻는다.

 요청한 URL은 서버 전체를 의미하도록 * 표시로 대신함

CONNECT

 프록시가 사용하는 요청, SSL(Secure Socket Layers)에 예약된 메소드

MOVE

 서버에 저장된 자료의 위치나 파일명을 변경

 

▶ 응답 ( Response )

- 사용자에게 받은 요청을 서버가 처리하여 보내주는 메시디

- Response code, Header, Entity body 세 부분으로 구성

 

구성 요소

세부 내용

Response code

 (프로토콜 버전) (상태 코드)

Header

 (Date:) (응답 시간)

 (Server:) (응답 서버 정보)

 (Last_Modified:) (최근 응답 페이지 수정일)

 (Accept-Ranges:) (받을 수 있는 요청 범위의 형식)

 (Content-Length:) (내용의 길이)

 (Content-Type:) (내용의 형식)

 (Via:) (요청에서 클라이언트와 서버, 통신 중간에 프로토콜과 수신자)

 (Age:) (서버에서 생성된 페이지(정보)에 대한 예상 시간)

 (Expires:) (내용이 만료되는 것으로 예상 시간)

 (Connection:) (연결 형태)

Entity body

 클라이언트가 요청한 페이지 내용과 같은 전달할 값

 

- 요청한 정보가 성공적으로 처리되었을 때 받을 수 있는 응답 메시지 예는 다음과 같다.

 

 

- 인터넷을 사용하다 보면 401, 403, 500번 에러 메시지를 보게된다.

- 에러 메시지는 어떤 부분에 문제가 있어서 성공적인 응답을 받을 수 없는지를 보여준다.

- 관리자에게 도움을 주기 위한 메시지이지만 해커들도 이 메시지를 보고 서버에 대한 정보와 취약점을 확인가능

 

 

- 이러한 상태 코드를 대략적으로 알고 있으면 도움이 된다.

 

코드 범위

설명

100~199

 정보

200~299

 클라이언트의 요청이 성공적임

300~399

 다른 동작이 더 필요하여 클라이언트의 요청을 리다이렉트

400~499

 클라이언트 오류

500~599

 서버 오류

1. SQL ( Structured Query Language )

- 데이터베이스를 사용할 수 있게 해주는 질의어

 

2. 데이터베이스의 구성

- 월요일에는 국어, 수학, 영어, 체육, 한문 수업이 있는데 이 한열을 컬럼(Column) 또는 필드(Field)라고 한다.

- 매일 진행하는 1교시 수업이 표시되어 있는 행을 로우(Raw) 또는 레코드(Record)

- 1주일 시간표를 테이블

 

 

 월

목 

금 

토 

1

국어

국어

국어

 영어 

 영어 

컴퓨터

2

수학

국사

국사

수학

수학

컴퓨터

3

영어

수학

수학

미술

국어

클럽활동

4

체육

영어

영어

미술

음악

클럽활동

5

한문

과학

과학

국어

과학

 

 

- 이제 하나의 예제로 아래와 같은 구조의 데이터베이스를 생성할 것이다.

- Test_db이라는 데이터베이스에는 Member, Zip, Board 테이블이 있다.

- Member 테이블에는 idx, bId, bPass, bName, bData 필드가 있다.

 

▶ 데이터베이스 생성과 삭제

⊙ 데이터베이스를 생성하는 구문

- CREATE DATABASE 데이터베이스_이름;

 

ex)

- CREATE DATABASE test_db;

 

⊙ 새로 만든 데이터베이스를 사용하려면 USE 명령으로 사용할 데이터베이스를 지정해야한다.

- USE 데이터베이스_이름;

 

ex)

- USE test_db;

 

⊙ 데이터베이스를 삭제하려면 DROP 명령을 사용해야 한다.

- DROP DATABASE 데이터베이스_이름;

 

ex)

- DROP DATABASE test_db;

 

▶ 테이블 생성과 삭제

⊙ 데이터베이스 안에 테이블을 만들 차례

- CREATE TABLE 테이블_이름 (필드 정보)

 

ex)

- CREATE TABLE member(idx int);

- CREATE TABLE zip(post1 int, post2 int);

- CREATE TABLE board(title text, contents text);

 

⊙ 테이블을 삭제할 때도 DROP 명령을 사용

- DROP TABLE 테이블_이름

 

ex)

- DROP TABLE member

 

⊙ 테이블을 만들 때는 각 필드 내용도 함께 생성해야 정상적으로 테이블이 생성된다. (member 테이블을 생성)

 

CREATE TABLE [member]

[idx] [int] IDENTITY (1,1) NOT NULL NOSTRAINT PK_member

primary key clustered,

[bId] [varchar] (12) COLLATE korean_Wansung_CI_AS NOT NULL,

[bPass] [varchar] (14) COLLATE korean_Wansung_CI_AS NOT NULL,

[bName] [varchar] (20) COLLATE korean_Wansung_CI_AS NOT NULL,

[bDate] [datetime] NOT NULL CONSTRAINT DF_member_regdate default (gerdate())

) ON [PRIMARY]

 

- idx 필드는 primary Key(기본키) 값이 정의된 필드이고, 기본 값이 1이며, 레코드가 증가할수록 값은 1씩 증가

- bId 필드는 12개의 문자를 입력할 수 있는 필드이다.

- bPass 필드는 14개의 문자를 입력할 수 있는 필드다.

- bName 필드는 20개의 문자를 입력할 수 있는 필드다.

- bDate 필드는 날짜 필드로 현재 시간과 날짜가 자동으로 입력되는 필드다.

 

▶ INSERT

⊙ INSERT 명령으로 레코드를 추가할 수 있다.

- INSERT INTO 테이블_이름(필드1, 필드2 ···, 필드N) values(value1, value2, ···, valueN);

 

ex)

- INSERT INTO member(bid, bPass, bName) values('admin', 'admin', '관리자');

 

▶ SELECT

⊙ SELECT 문을 이용하면 테이블에 어떤 데이터가 있는지 확인 할 수 있다.

- SELECT 필드명 from 테이블명 where 검색조건 order by 정렬방법

 

ex)

SELECT * from member;

 

 

- 테스트를 위해 여러 개의 레크드를 등록

 

▶ DELETE

⊙ 입력한 레코드를 삭제하려면 DELETE문을 사용한다.

- DELETE from 테이블명 where 검색조건

 

ex)

DELETE from member where bPass='test3';

 

 

▶ UPDATE

⊙ 입력한 레코드 값을 수행할 때는 UPDATE 문을 사용한다.

- UPDATE 테이블명 set 필드명 where 검색조건;

 

ex)

UPDATE member set bName='사용자';

UPDATE member set bid='zzz' where bid='test1';

 

 

1. 웹서버란?

- 웹 브러우저(클라이언트)의 HTTP 요청을 받아 처리하는 컴퓨터 프로그램이나 그러한 컴퓨터 프로그램을 실행하는 컴퓨터라고 할 수 있다.

- 인터넷에 쇼핑몰을 운영하고 싶다면 소비자를 유혹할 만한 멋진 웹 페이지를 만들고 웹 서버를 설치하여 쇼핑몰이 소비자의 요청에 따라 적절하게 보여질 수 있도록 해야한다.

- 이를 위해서 게시판을 설치할 수 있으며, 게시판을 운용하기 위해서는 웹 서버가 필수적이다.

- 가장 흔하게 사용되는 웹서버로 IIS(Internet Information)와 Apache(아파치)가 있다.

 

2. IIS 설치

- Windows XP Professional에는 웹 서버를 구축할 수 있도록 기본적으로 IIS가 제공된다. (Windows XP CD 필요)

- [제어판] -> [프로그램 추가/제거] -> [Windows 구성 요소 추가/제거] -> [Windows 구성 요소 마법사] -> [인터넷 정보 서비스(IIS)] 선택하여 설치

 

 

- 설치가 끝난 후 윈도우 탐색기를 열어 C:\Inetpub\wwwroot 폴더가 생성되었는지 확인. Inetpub는 IIS의 기본 경로다.

 

 

- 웹 브라우저를 실행하여 주소 창에 http://localhost라고 입력한 후, 웹 서버가 정상적으로 실행되고 있는지 확인

 

 

3. IIS 설정 변경

 

- IIS의 서비스 실행 상태와 설정 정보를 [제어판] -> [성능 및 유지관리] -> [관리 도구] -> [인터넷 정보 서비스]에서 확인 할 수 있다.

 

 

- 외부에서 접근할 수 있도록 현재 사용중인 IP를 등록.

- [로컬 컴퓨터] -> [웹 사이트] -> [기본 웹 사이트] 메뉴에서 [속성]을 선택하면 [기본 웹 사이트 등록 정보] 창이 뜨는데, IP 주소 목록에서 사용할 IP 선택

 

 

- XP에서는 방화벽을 사용하기 때문에 80 포트에 대해서 예외 처리를 해야 외부에서 정상적으로 접근할 수 있다.

- [제어판] -> [네트워크 및 인터넷 연결] -> [Windows 방화벽]을 실행시켜 [예외] 탭을 선택한 후, [포트 추가]를 선택하여 포트번호 80입력으로 80포트를 열어준다.

 

 

4. MS-SQL 설치

- MS-SQL 2000은 Microsoft에서 제작된 DBMS로 사용법이 쉽다.

- XP는 개인용 운영체제 이므로 SQL Personal Edition을 설치

 

 

- 컴퓨터 이름으로 [로컬 컴퓨터]를 선택한다. 여기에서 인스턴스는 하나의 객체로 로컬 서버에서 여러 SQL 서버를 운영할 수 있도록해준다.

 

 

- 설치 선택으로는 [새 SQL Sever 인스턴스를 만들거나 클라이언트 도구 설치]를 선택. SQL 서버를 업그레이드 할 경우에 [고급 옵션]을 선택하기도 한다.

 

 

 

- [설치 정의 창에서 설치 유형으로 [서버와 클라이언트 도구]를 선택한다. [서버와 클라이언트 도구]를 선택하면 SQL 서버와 클라이언트 툴이 설치된다.

 

 

- SQL 서버를 한 대만 운영할 것이므로 [인스턴스 이름] 창에서는 [기본값]을 선택한다.

 

 

- [서비스 계정] 창에서는 [각 서비스에 대해 동일한 계정 사용. SQL Server 서비스 자동 시작]을 선택하고 [서비스 설정]에서 [로컬 시스템 계정 사용]을 선택한다.

 

 

- 웹 페이지와 연동하기 위해서 [혼합 모드(Windows 인증과 SQL Server 인증)]을 선택ㅎ 한후 관리자 계정인 SA 로그인 암호를 설정한다.

 

 

- MS-SQL Server 2000이 설치 되었다.

 

 

5. 게시판 연동

 

- 실습을 위해 가상 디렉터리를 만들어야 한다.

- 가상 디렉터리란, 다른 곳에 위치한 디렉터리를 특정한 곳의 하위 디렉터리처럼 사용하는 것을 말한다.

- 가상 디렉터리를 설정하기 위해 [제어판] -> [(성능 및 유지 관리)] -> [관리 도구] -> [인터넷 정보 서비스]를 실행한다.

- [웹 사이트] -> [기본 웹 사이트]에서 [새로 만들기] -> [가상 디렉터리]를 선택한 후 가상 디렉터리를 만든다.

 

 

 

- 추가적으로 board에 대한 가상 디렉터리 설정을 변경한다.

- [응용프로그램보호]를 [낮음(IIS프로세스)]로 선택한다. 이렇게 설정하면 웹 서버에서 응용프로그램을 실행할 수 있다.

 

 

 

- 다음으로 파일 업로드에 사용될 SiteGalaxyUpload를 설치한다.

 

 

- 웹 브라우저를 띄우고, 주소 창에 http://자신의IP/board/를 입력하여 게시판의 로그인 화면이 뜨는지 확인해보자.

- 성공했다면, 웹 서버도 정상적으로 동작하고 게시판도 제대로 연동된 것이다.

 

 

 

6. 데이터베이스 만들기

 

- [Microsoft SQL Server] -> [쿼리 분석기]를 실행한다.

- [SQL Sever]에서 [(local)]을 선택하고 [SQL Server 인증]을 선택하여 [로그인 이름]에 SA를 입력한다.

- 그리고 앞서 SQL Server를 설치할 때 사용했던 인증 암호를 [암호]에 입력하면 된다.

 

 

 

- 로그인에 성공하면 [SQL 쿼리 분석기] 창이 실행될 것이다.

 

 

- 여기에서 Board라는 이름을 가진 데이터베이스를 만들 것이다. 쿼리 입력 창에 쿼리를 입력한후 F5키를 눌러주면 데이터베이스가 할당되는 것을 확인

 

 

- 게시판에 사용할 테이블을 만들고 데이터도 넣어주어야한다. 우선 테이블 설치할 DB(board)를 선택 후 sql 내용을 입력 후 F5 눌러주면 DB(board)안에 테이블이 설치된 것을 확인할 수 있다.

 

 

-  설치가 완료되었다. http://IP/board에서 관리자 계정으로 접속하면 게시판에 정상적으로 들어갈 수 있을 것이다.

 

+ Recent posts