Simple is IT, 누구나 보고 누구나 깨닫는 IT

OSI 7 계층 별 설명_HTTP/S of Application Layer 본문

Simple is IT/Network

OSI 7 계층 별 설명_HTTP/S of Application Layer

currenjin 2020. 4. 25. 15:14

HTTP(HyperText Transfer Protocol)

- www에서 쓰이는 핵심 프로토콜로 웹 표준 데이터를 받아오는 프로토콜이다.

( Request / Responnse 동작에 기반하여 서비스를 제공한다. )

웹 생성을 위한 다양한 기술들

WEB 표준 : HTML, Javascript, CSS 등

( Client에서 동작한다, Front-End )

WEB 기술 : ASP/ASP.NET, JSP, PHP 등

( Server에서 동작한다, Back-End )

HTTP 1.0

- 연결 수립, 동작, 연결 해제의 단순함이 특징이다. ( 하나의 URL은 하나의 TCP 연결 )

- 단순 동작이 반복되어 통신 부하 문제가 발생하기도 한다. ( 3Way handshake 반복 )

HTTP 1.1

- 연결이 맺어지면 데이터를 모두 받기 전까지는 연결을 끊지 않는다.

HTTP 요청 프로토콜 구조

Request Line : 요청

Headers : 옵션 개념

공백

Body : 요청 시 추가적인 데이터

일반적인 예시

Request Line : 맨 윗줄

Headers : 나머지

HTTP 요청 프로토콜의 메소드

요청 타입

GET : 데이터를 요청( 보낼 수 있다? )

POST : 데이터를 보냄 ( 요청 할 수 있다? )

COPY, MOVE, DELETE 등 : 대부분 막는다.

GET과 POST의 차이점

- GET는 요청사항을 주소 창에 포함, POST는 Body에 포함

결국 packet capture 시에는 다 보이기 때문에 HTTPS를 사용

URI (Uniform Resource Identifier)

- 인터넷 상에서 특정 자원을 나타내는 유일한 주소

구조

ex) protocol://host[:port][/path][?query]

query데이터를 path에 전달해준다.

실습

-> jdk(oracle) 설치 후 apache-tomcat 실행

- 환경변수 : 시스템의 환경과 관련된 값을 저장하는 변수

( 고급 시스템 설정 -> 고급 -> 환경 변수 시스템 변수 설정 -> ;Path 경로 설정 )

( 추가 변수 JAVA_HOME, C:\Program Files\Java\jdk1.8.0_231 )

-> tomcat\bin\startup.bat 실행

-> webapps\123\456\789.txt 파일 만든 후 웹 주소 뒤에 해당 경로 입력 확인

-> ?query실습도 진행 ( jsp파일 생성 후 진행 )

HTTP 응답 프로토콜 구조

Status Line

Headers

공백

Body

Status Line : 첫줄

Headers : <html>전까지

Body : 나머지

HTTP 응답 프로토콜의 메소드

HTTP 상태코드

403 : Forbidden (권한 X)

404 : Not Found (서버에 없는)

500 : Internal Server Error (서버 멈추거나 설정 오류)

503 : Service Unavailable (최대 Session 수를 초과)

HTTP의 헤더

일반적인 헤더

Content-Length : 메시지 바디 길이를 나타낼 때 쓰임

Content-Type : 메시지 바디에 들어있는 컨텐츠의 종류

요청 헤더

Cookie : 서버로부터 받은 쿠키를 다시 서버에게 보내주는 역할을 함.

Host : 요청된 URL에 나타난 호스트명을 상세하게 표시 ( HTTP1.1은 필수 )

User-Agent : Client Program에 대한 식별 가능 정보를 제공

응답 헤더

Server : 사용하고 있는 웹 서버의 소프트웨어에 대한 정보를 포함

Set-Cookie : 쿠키를 생성하고 브라우저에 보낼 때 사용.

실습

-> netcat을 이용해 www.nate.com에 접속 ( port : 80 )

- GET / HTTP/1.1 요청 시 응답이 오는 것을 볼 수 있다.

-> HTTP 프로토콜 수정 실습( Falcon Proxy Settings, burpsuite Proxy Intercept )

- 페이지 새로고침 하면 Burpsuite의 인터셉트 진행 ( Forward로 다음 )


Comments