R's Hacking Daily Log

HTTP in detail (1) 본문

TryHackMe/Walkthroughs

HTTP in detail (1)

hanhxx 2023. 4. 3. 15:59

What is HTTP(S)?

HTTP :: HyperText Transfer Protocol
HTTP는 webpage의 데이터를 보내기 위해 웹 서버와 통신하는 데에 사용되는 규칙들의 집합이다. 

* web page의 data라 함은 HTML, 사진, 비디오와 같은 예시를 생각하면 된다.

 

 

HTTPS :: HyperText Transfer Protocol Secure

HTTPS는 Secure + HTTP라고 생각하면 된다.

HTTPS data는 사용자가 보내고 받는 데이터를 다른 사람이 볼 수 없게 암호화하는 것뿐만 아니라

사칭이 아닌 올바른 웹 서버와 통신하고 있다는 확신을 준다.

 

 

 

Requests and Responses

사용자가 웹 사이트에 접속할 때 Browser는 html, image, video와 같은 자산을 얻기 위해 웹 서버에게 request(요청)를 보내고 응답을 받아야 한다. 

 

누군가에게 요청을 할 때 그 내용이 무엇이냐에 따라 질문 내용이 달라지듯이
Browser는 resource에 접근하는 방법과 위치를 자세히 알려줘야 한다. 

 

여기서 사용되는 게 바로 URL이다.

 

URL [ Uniform Resource Locator ]

url은 인터넷상에서 얻고자 하는 자원에 접근하기 위한 지시와도 같다. (여기로 가라!)

 



  
url은 이미 지정된 영역에서 값이 달라지며 만들어지는 것이기 때문에 한 번쯤 각각의 자리가

나타내는 값이 무엇인지 알아보는 것이 좋다.

 

 

Scheme :: 
리소스에 접근하기 위해 어떤 프로토콜이 사용되었는지. (FTP, HTTP, HTTPS..)

 

 

User ::

로그인을 위해 인증 절차를 요구하는 어떤 서비스에 대한 사용자명 & 비밀번호

 

 

Host ::

사용자가 접속하고자 하는 서버의 도메인 이름 or IP 주소

 

 

Port ::

연결할 포트 번호로 HTTP = 80 & HTTPS = 443 port를 사용하지만

1~65535(2^32) 사이의 포트 번호를 사용할 수도 있다.

 

 

Path ::

얻고자 하는 데이터의 위치나 파일 이름

 

 

Query String ::
추가적으로 보낼 수 있는 정보로 찾고자 하는 것에 특정 조건을 더할 수 있다고 보면 된다. (ex. sql - select)

 

 

Fragment ::
요청된 실제 페이지 내 위치에 대한 참조로 내용이 많은 웹 페이지에 사용된다.
페이지 중 특정 부분으로 바로 이동하기 때문에 페이지에 접속하는 동시에 즉시 볼 수 있다.

 

 

 

Example Request & Response

browser(client)가 어떠한 데이터를 얻기 위해 server에게 요청을 보내는 것을 Request라고 부른다. 

HTTP(S)를 통해 client-server 통신이 이루어지기 때문에 Request & Response를 보내는 데에도 정해진 형식이 존재한다.


GET / HTTP/1.1
Host : tryhackme.com
User-Agent : Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/

 

Request의 경우에는 Method, resource, version 정보가 첫 번째 줄에 표기되고 
나머지 줄에는 Host, user-Agetn, Referer.. 의 내용이 포함된다.

 

 

HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98

<html>
<head>
    <title>TryHackMe</title>
</head>
<body>
    Welcome To TryHackMe.com
</body>
</html>

 

response의 경우에는 version, status code와 문구가 첫 번째 줄에 표기되고

HTML tag로 포함된 부분은 response의 body부분에 들어있는 내용으로 browser는 이 내용을 페이지로 만들어 띄우게 되는 것.

 

**요청에서는 Method, 응답에서는 상태 코드가 들어간다는 것이 각각의 차이점이자 특징이라 할 수 있다.

'TryHackMe > Walkthroughs' 카테고리의 다른 글

HTTP in detail (3)  (0) 2023.04.07
HTTP in detail (2)  (0) 2023.04.04
Traffic Analysis Essentials (3)  (0) 2023.04.02
Traffic Analysis Essentials (2)  (0) 2023.04.02
Traffic Analysis Essentials (1)  (0) 2023.04.01
Comments