본문 바로가기

Hacking & Security/Web

웹 기초 지식

1. WWW    

  -    World Wide Web의 약자로 세계규모의 거미집 또는 거미줄 이라는 뜻으로 , 인터넷상의 분산되어 있는 정보들이 연결되어 제공되는 인터넷 서비를 의미한다.

  -    줄여서 웹(Web) 이라고 칭한다.

  -    WWW는 URL , HTTP , HTML의 구성요소로 이루어져 있다.


2. URL

  -    Uniform Resource Locator 의 약어로 네트워크 상의 자원의 위치를 나타낸다.

  -    Client , Web Server , Web Application , DataBase로 구성되어 있다.


ex)     http://sports.news.naver.com/sports/index.nhn?category=worldfootball
          1                2                         3                            4

1) Client : 사용중인 프로토콜의 정보이다. 웹 서버 이용 시 HTTP를 사용한다.

2) Server : 현재 접속중인 웹 서버의 주소를 나타낸다.

3) Application : 여러가지 소스 파일로 구성.

위 예시는 네이버의 어플리케이션의 정보를 확인한 결과다

네이버 측에서는 보안상의 이유로 nhn로 수정하여 웹 서버에 저장

4) DataBase : 파라미터를 통해 웹 어플리케이션으로 전달되고 , 이를 통해 데이터베이스에서 작업을 할 수 있도록 한다.



3. HTML

   -    웹 문서를 만들기 위해 사용하는 기본적인 프로그래밍 언어다.

   -    제목 , 단란 , 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 , 링크 , 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있도록 제공한다.

    

 HTML의 구성요소
    -    요소(Elements)
        - 태그에 포함된 가장 중요한 부분을 말하는 것으로 , 태그의 의미를 결정한다.

    -    태그(Tags)
        - '<' 와 '>' 를 사용하여 화면에 나타낼 내용을 구분해준다.

  - 시작 태그와 종료 태그를 사용해서 해당 요소를 적용할 범위를 정한다.
    ex) <요소> 내용 </요소>

    -     속성(Attributes)
        - 시작 태그 내에서 사용하는 것으로 명령을 구체화 한다.

    ex) <font>~~</font>를 사용할때 , font 요소는 size,color등의 속성을 가진다.

    -     속성값(Argumetns)
        - 속성과 관련된 값을 지정한다.

    ex) <font color="red">를 사용할때 , "red"라는 속성값을 가진다.




DOM ( Document Object Model)이란 ? 
   -객체 지향 모델로써 구조화된 문서를 표현하는 형식이다.

HTML문서의 요소들에 접근 가능하도록 되어있으며 , DOM을 사용하면 데이터를 동적으로 화면에 접근하고 변경할 수 있어

접근성과 조작성을 부여할 수 있다.


SSS & CSS

-    SSS는 Server Side Script의 약어로 서버 측 스크립트 언어를 의미한다. ( ex , PHP , JSP , ASP )

-    CSS는 Client Side Script의 약어로 사용자 측 스크립트 언어를 의미한다. ( ex , Java Script , VB Script )

-    HTML은 로직을 이용한 작업은 불가능 하다. ( ex , 마우스 클릭 , 입력 , 조건문 ..etc )
    그래서 동적인 웹 서비스를 위해 스크립트 언어를 이용한다.



HTTP

HTTP란 ? WWW에서 정보를 주고 받을 때 사용되는 프로토콜이며 80번 포트를 사용한다.

사용자와 서버 사이에 이루어지는 요청/응답(Request/Response) 프로토콜이다.


HTTP특징

-    TCP기반의 통신방식 (3-way handshake )

-    비연결 지향 ( UDP는 연결지향 )
-    단방향성

-    평문전송


HTTP Request

-     사용자가 서버에게 요청하는 것이다.

여기서 서버란 서비스를 제공하는 입장이고 , 사용자(Client)는 이 서비스를 제공받는 것을 의미한다.



-    메소드 : 사용자가 서버에 요청하는 메소드와 HTTP의 버전 확인 가능
-    요청헤더 : 서버에 전달하는 사용자의 정보를 나타내는 부분이다.

-    공백부분 : HTTP의 요청  헤더 부분과 본문 부분을 구분하기 위한 공백

-    본문 : 메시지의 내용을 담고 있는 부분이다.    GET메소드인 경우 요청정보가 URL에 포함되어 전송되어서 메시지 본문을 사용하지 않으므로 비어 있게 된다.



 

GET 

POST 

전송방식 

데이터를 URL에 포함하여 전송 

메세지 본문에 데이터를 첨부하여 전송 

데이터양 

4096byte ( 255자 ) 

제한 없음 

데이터 타입 

ASCII 

제한 없음 

속도 

빠르다 

느리다 

보안성 

데이터 정보가 URL에 포함되므로 보안취약 

데이터 정보가 HTTP본문에 인코딩 되어 전송되므로 GET방식보다는 안전 


결론 : GET은 서버에서 데이터를 불러오는것 , POST는 서버의 데이터를 수정하는 것


HTTP Response 




-   상태코드 : 사용자의 요청에 대한 서버의 처리결과를 나타낸다.

-   응답헤더 : 사용자에게 전달한 데이터의 정보를 나타내는 부분이다.

-   공백부분 : HTTP의 요청 헤더 부분과 본문 부분을 구분하기 위한 공백

-   본문 : 사용자에게 전달한 데이터의 내용을 담고 있는 부분이다.



HTTP Response 상태코드

100~199 : 사용자의 요청이 현재 처리되고 있음.

200~299 : 서버가 사용자의 요청에 대해 성공적으로 처리했음을 의미.

300~399 : 사용자가 요청을 마치기 위해 추가 동작을 해야 함.

400~499 : 사용자측의 에러가 발생.

500~599 : 서버 측 에러가 발생.


중요 코드 

HTTP 200 : 서버가 사용자의 요청에 정상적으로 처리했음을 의미.

HTTP 400 : 사용자의 요청에 서버가 제대로 인식하지 못했을 경우를 의미.

HTTP 401 : 사용자가 서버의 자원을 요청할 권한이 없음을 의미.

HTTP 403 : 서버가 사용자의 요청을 거부하고 있음을 의미.

HTTP 404 : 사용자가 서버에 존재하지 않는 페이지에 대해 요청할 경우를 의미.

HTTP 500 : 서버에 오류가 발생하여 요청을 수행할 수 없음을 의미.

'Hacking & Security > Web' 카테고리의 다른 글

웹 취약점 진단제거 가이드  (0) 2019.03.03
SQL Injection  (0) 2017.11.27
웹 취약점 분류  (0) 2017.11.27
HTTP Request ~ HTTP Response  (0) 2017.11.27
웹 기초 지식 2  (0) 2017.11.24