HTTP
--> 인터넷에서 가장 많이 사용하는 포로토콜
--> 문서 간의 상호 연결을 통해 다양한 텍스트 , 그래픽 , 애니메이션을 화면에 보여주고 사운드를 재생
--> HTTP 전송 방법 : 웹 서버로부터 자료를 가져오는 기능을 하는 GET을 많이 사용
Tip : GET 메소드는 별도의 메시지 보디를 필요 x
--> 요청된 URL : 웹 서버에 있는 자료를 요청할 때 사용되는 경로
--> HTTP 버전 : 인터넷에서 가장 일반적으로 사용되는 HTTP 버전은 1.0 과 1.1 ( 보통 초기값 1.1)
웹 해킹과 관련된 요소에는 무엇이 있을까.
첫 번째로는 서버가 클라이언트에 전송한 인자값에 추가 정보를 보낼 때 사용
두 번째로는 URL 주소에 나타난 호스트명을 자세하게 나타내기 위해 사용
세번째로는 브라우저나 기타 클라이언트의 소프트웨어 정보를 보여줌
네번째로 GET방식은 요청 데이터에 대한 인수를 URL을 통해 웹 브라우저로 전송
POST
HTTP의 보디 영역에 소켓을 이용하여 데이터를 전송한다
URL을 통해 인수값을 전송하지 않기 때문에 다른 사람이 링크를 통해 해당 페이지 확인 불가능
보내려는 인자값이 URL을 통해 노출되지 않기 때문에 GET보다는 안전한 형태
# 일반적인 게시판에서의 GET방식과 POST방식의 사용은 어떻게 될까?
--> 목록이나 글을 보는 화면에는 접근 자유도를 부여하기 위해 GET방식 사용
--> 글을 저장, 수정 , 삭제하는 작업을 할 때에는 보안을 위해 POST방식 사용
Request 패킷의 메소드
HEAD : 서버 쪽 데이터를 검색하고 요청하는 데 사용
OPTIONS : 자원에 대한 요구 - 응답 관계에서 관련된 선택 사항에 대한 정보를 요청할 때 사용
PUT : 메시지에 포함되어 있는 데이터를 지정한 URI 장소에 지정된 이름으로 저장
DELETE : URI에 지정되어 있는 자원을 서버에서 지울 수 있게 한다.
TRACE : 요구 메시지의 최종 수신처까지 루프백 검사용으로 사용
Response
클라이언트가 보낸 Request 의 응답 패킷
Response 패킷에 담긴 주요 내용은 서버에서 쓰이는 프로토콜 버전 , HTTP 상태 코드 등이다
전달할 데이터의 형식 , 데이터의 길이 같은 추가 정보가 포함되어 있다.
HTTP 상태 코드에 따라 함축적 의미가 달라진다.
100번대 : 정보 전송을 의미
--> 임시 응답을 나타내는 것은 Status-Line과 선택적인 헤더로 이루어져 있으며 , 빈 줄로 끝을 맺는다.
200번대 : 성공을 의미
--> 클라이언트의 요청이 성공적으로 수신되어 처리되었음을 의미
300번대 : 리다이렉션을 의미
--> 클라이언트의 요구 사항을 처리하려면 다른 곳에 있는 자원이 필요하다는 것을 의미
400번대 : 클라이언트 측 에러를 의미
--> 클라이언트가 서버에 보내는 요구 메시지를 완전히 처리하지 못한 경우처럼 클라이언트 측에서 오류가 발생한 것을 의미
500번대 : 서버 측 에러를 의미
--> 서버 자체에서 생긴 오류 상황 or 클라이언트의 요구 사항을 제대로 처리 할 수 없음을 나타낼 때 발생
HTTP 1.0과 HTTP 1.1에 대해서 알아 보자
HTTP 1.0은 문서에 몇 개의 그림이 있는 상관없이 텍스트가 저장된 HTML 문서를 먼저 전송받은 후 연결을 끊고 다시 연결하여 그림을 전송 받음
HTTP 1.1은 연결 요청이 계속 들어오면 HTML 문서를 받은 후 바로 그림 파일을 요청
서버 측 기능
1.초기의 웹 서버는 단순한 정적 페이지 제공
2.현재는 입력한 값에 따라 다양한 결과를 화면에 보여주는 동적 기능 제공
웹 애플리케이션이 이용하는 서버 측 기능
1.서버 측 스크립트 언어
--> 클라이언트가 요청한 데이터를 서버 측에서 처리하여 원하는 결과를 돌려주기 위해 사용하는 언어
--> 윈도우 계열 기반은 주로 ASP , 웹 애플리케이션 플랫폼에는 주로 JSP 사용
2.웹 서버
--> 많이 사용되는 웹 서버는 아파치 or IIS
3.데이터베이스
-->데이터베이스를 관리하는 소프트웨어 ( DBMS )
-->데이터베이스 구축 , 데이터를 입력 , 변경 , 검색할 수 있다.
클라이언트 측 기능
1.자바스크립트
-->객체 기반의 스크립트 프로그래밍 언어
--> 성능 문제로 인해 서버 측에서 처리하지 않는 부분을 클라이언트 측에서 처리 할 수 있도록 할 때 사용
'학부공부 > 인터넷보안과응용' 카테고리의 다른 글
웹 프록시를 이용한 HTTP 패킷 분석 (0) | 2018.09.06 |
---|---|
Webgoat 설치 (0) | 2018.09.06 |
초창기의 웹 사이트 살펴보자. (0) | 2018.09.03 |
Oauth (0) | 2018.09.03 |
인터넷의 이해 (0) | 2018.09.03 |
#IT #먹방 #전자기기 #일상
#개발 #일상