Server 01 - HTTP
in Web-Programming on Server
HTTP
HyperText Transfer Protocol, 웹에서 클라이언트(브라우저)와 서버가 통신할 때 사용하는 통신 규약. 통신 규약은 통신에 참여한 주체들이 합의한 메세지 형식을 의미한다. HTTP의 특징은 다음과 같다.
- 비연결성
- 브라우저가 서버에 특정 문서를 요청하는 순간, 잠시 서버와 연결했다가 응답이 완료된 후 바로 끊어짐
- 무상태
- 웹 서버와 웹 클라이언트 상태 정보가 유지하지 않음. 상태 정보 유지하기 위해선 쿠키나 세션이 필요
HTTP 구조
HTTP 요청 URL 구조
http:(1) //(2) localhost(3) :8080(4) /Application/board/index.html(5)
- http: 프로토콜 사용
- //: 프로토콜 사용 구분자
- localhost: 호스트 도메인
- 8080: 포트, 호스트 도메인에 연결된 포트 번호
- /Application/board/index.html 웹 어플리케이션 파일
HTTP 요청 프로토콜 구조
- start-line
- 요청 방식 / 요청 URI / 프로토콜 버전 정보
- GET BoardWeb/board/login.html HTTP/1.1
- message-header
- 키:값 형태로된 브라우저 정보
- CRLF
- Carriage Return Line Feed, 메세지 헤더/바디 구분자
- message-body
- 사용자 입력 정보. 요청 방식에 따라 달라짐
HTTP 응답 프로토콜 구조
- status-line
- 프로토콜 버전 / 상태 코드 / 상태 메세지 정보
- message-header
- 키:값 형태로된 서버가 응답한 문서 정보
- CRLF
- Carriage Return Line Feed, 메세지 헤더/바디 구분자
- message-body
- 브라우저가 요청한 파일/문서
요청 방식(method)
- GET: 조회
- 사용자 입력 정보가 URI뒤 쿼리 문자열로 물음표뒤 키=값 형태로 포함됨
- GET /BoardWeb/login?id=zzz&pw=dwdw HTTP/1.1
- POST: 등록
- GET과 달리, 사용자 입력 정보가 message-body에 포함됨
- URI로 주요 정보 노출 방지
- POST /BoardWeb/login HTTP/1.1
- PUT: 수정
- DELETE: 삭제
요청 URI
- URL: Uniform Resource Locator, 요청시 사용
- URI: Uniform Resource Identifier, URL에서 포트번호 이후 문자열을 의미
URL: http://localhost:8080/Application/board/index.html URI: /Application/board/index.html
응답 상태 코드 / 메세지
- 200 / OK : 정상 처리
- 403 / Forbidden : 브라우저가 요청한 파일에 접근 불가
- 404 / Not Found : 브라우저가 요청한 파일이 서버에 없음
- 405 / Method Not Allowed : 브라우저가 요청한 방식(method)이 서버에서 지원 불가
- 500 / Internal Server Error : 브라우저가 요청한 기능을 서버에서 처리하다 난 오류