기억나는 내용과 꼭 다시봤으면 하는 내용을 위주로 올려둘 예정이다.
# Keyword
- Web Browser (웹 브라우저)
: 웹에 접속하기 위해 사용하는 소프트웨어입니다.
- Web Resource
: 웹 상에 존재하는 모든 콘텐츠입니다. (HTML, CSS, JS, PDF, PNG 등)
- URI (URL)
: URI는 Uniform Resource Identifier의 약자로 리소스를 식별하기 위한 식별자입니다.
- HTTP (HyperText Transfer Protocol)
: 인터넷 서비스에서는 서비스 대상 간 통신 규약(Protocol)을 지정하여 통신합니다.
HTTP는 웹을 이용하기 위한 통신 규약입니다.
# Contents
1. URL의 정보파악하기
http:// example.com /path ?search=1 #fragment
Scheme
: 웹 서버에 접속할 때 어떤 체계(프로토콜)를 이용할지에 대한 정보를 담고 있습니다.
Authrity(Host, Port)
: Authority의 일부로써 접속할 웹 서버의 호스트(서버 주소)에 대한 정보를 가지고 있습니다.
: Authority의 일부로써 접속할 웹 서버의 포트에 대한 정보를 가지고 있습니다.
Path
: 접속할 웹 서버의 경로에 대한 정보를 가지고 있으며 /로 구분됩니다.
Query
: 웹 서버에 전달하는 파라미터 (추가적인 정보)이며 URI에서 ? 뒤에 붙습니다.
Fragment
: 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보를 담고 있으며 URI에서 # 뒤에 붙습니다.
2. response(응답) 종류
* 악의적인 입력을 보냈을 때 500 Status code(Internal Server Error)가 응답되면 해당 입력이 서버에 어떠한 영향을 끼쳤다고 짐작할 수 있고 취약점이 있다고 가정해 더 살펴볼 수 있게 됩니다.
1) 200번 영역
: 사용자의 요청에 대한 서버의 처리가 성공하였음을 나타냅니다.
200 OK
201 Created
2) 300번 영역
: 사용자가 요청한 리소스가 다른 경로로 변경된 경우를 나타내는 영역입니다. 웹 브라우저에서 300번 영역의 응답 상태 코드가 반환되면, Response Header에 포함되어 있는 Location 헤더의 값으로 리다이렉션 합니다.
301 Moved Permanently
302 Found
3) 400번 영역
: 사용자가 서버에 요청하는 구조 또는 데이터가 잘못되었음을 나타내는 영역입니다.
400 Bad Request
403 Forbidden
404 Not Found
405 Method Not Allowed
4) 500번 영역
: 서버의 에러와 관련된 영역입니다.
500 Internal Server Error
503 Service Unavailable
3. Cookie와 Session
: 상태를 유지하기 위해 Cookie(쿠키)라는 개념이 나왔습니다. 웹 브라우저는 HTTP Response의 Set-Cookie Header나 Javascript document.cookie를 통해 데이터를 쿠키에 저장합니다.
쿠키에 인증 상태를 포함한 데이터를 저장하면 사용자가 임의 사용자로 인증된 것 처럼 요청을 조작할 수 있습니다.
세션은 서버에 데이터를 저장하기 위해 사용합니다.
쿠키는 데이터 자체를 사용자가 저장하며, 세션은 서버가 저장한다는 핵심적인 차이가 있습니다.
4. Web에서 사용되는 것
1) Web Server
웹 서버는 사용자의 HTTP 요청을 해석하여 처리한 후 응답하여 주는 역할을 합니다.
대표적으로 nginx, Apache, Tomcat, IIS 등이 있습니다.
2) Web Application
웹 어플리케이션은 사용자의 요청을 동적으로 처리할 수 있도록 만들어진 어플리케이션입니다.
웹 어플리케이션을 작성할 때는 사용자가 요청한 내용을 동적으로 처리하기 위해 Web Application Language가 사용되며 대표적으로 PHP, NodeJS, Python, Java 등이 존재합니다.
3) DMS(DataBase Management System)
DataBase Management System (DBMS)은 데이터베이스 내의 데이터 조회/수정/삽입을 용이하게 사용할 수 있도록 도와주는 서버 어플리케이션입니다.
MySQL, MS-SQL 등을 DBMS라 하고 해당 어플리케이션들이 관리하는 데이터를 데이터베이스라고 합니다.
'Web Hacking > Study Notes' 카테고리의 다른 글
[ Web ] SQL Injection (0) | 2020.08.03 |
---|---|
[ Web ] Server-side Basic (0) | 2020.08.01 |
[ Web ] Client-Side basic (0) | 2020.07.30 |
[ CSS ] NOTEPAD (0) | 2019.09.17 |