Information Security
[DreamHack] STAGE 2 - Background : HTTP / HTTPS 본문
인코딩
컴퓨터에서는 0과 1로 모든 데이터가 구성된다
우리의 문자도 0과 1로 표현하는데, 이러한 약속들을 인코딩 표준이라고 한다
인코딩의 대표적인 예)
1. 아스키: 7비트 데이터에 대한 인코딩 표준
-> 알파벳과 특수 문자 표현 가능
But, 각 문자권마다 고유의 인코딩 표준을 사용하여 호환성 부족
2. 유니코드: 32비트 데이터에 대한 인코딩 표준
-> 모든 언어를 표현 가능
=> 인코딩을 이용하면 우리 문장을 컴퓨터에 저장과 표현 가능함
통신 프로토콜
프로토콜: 규격화된 상호작용에 적용되는 약속
컴퓨터와 통신할 땐 엄격한 프로토콜이 사용되어야 한다
Why? 컴퓨터는 융통성 있게 해결하는 능력이 부족
현재까지 제정된 표준 통신 프로토콜)
1. 네트워크 통신의 기초가 되는 TCP / IP
2. 웹 애플리케이션이 사용하는 HTTP
3. 파일을 주고받을 때 사용하는 FTP
등 많은 종류가 있다
HTTP
서버와 클라이언트의 데이터 교환을 요청과 응답의 형식으로 정의한 프로토콜
클라이언트가 서버에게 요청하면, 서버가 응답!
네트워크 포트(Network Port): 네트워크에서 서버와 클라이언트가 정보를 교환하는 추상화된 장소
서비스 포트(Service Port): 네트워크 포트 중에서 특정 서비스가 점유하고 있는 포트
포트로 데이터를 교환하는 방식은 전송 계층(Transport Layer)의 프로토콜을 따른다
대표적으로는 TCP와 UDP가 있다
일반적으로 80, 8080 포트를 쓴다
포트 중 0번부터 1023번 포트는 잘 알려진 포트(Well-known port) 또는 특권 포트(Privileged port)
대표적으로 22번 포트에는 SSH, 80에는 HTTP, 443에는 HTTPS가 할당되어 있다
HTTP 메시지

HTTP 요청
서버에게 특정 동작을 요구하는 메시지
HTTP 요청의 시작 줄은 메소드(Method), 요청 URI(Request-URI), 그리고 HTTP 버전으로 구성되어 있다
메소드: URI가 가리키는 리소스)
1. GET: 리소스를 가져오라는 메소드
2. POST: 리소스로 데이터를 보내라는 메소드
HTTP 응답
HTTP 요청에 대한 결과를 반환하는 메시지
HTTP 응답의 시작 줄은 HTTP 버전, 상태 코드(Status Code), 그리고 처리 사유(Reason Phrase)로 구성되어 있다
HTTP 버전: 서버에서 사용하는 HTTP 프로토콜의 버전을 나타냄
상태 코드: 요청에 대한 처리 결과를 세 자릿수로 나타냄
HTTP 표준인 RFC 2616은 대략 40여개의 상태 코드를 정의하고 있다


HTTPS
TLS(Transport Layer Security) 프로토콜을 도입하여 정보 유출 보완
TLS: 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화
'INTERLUDE > Web Hacking' 카테고리의 다른 글
[DreamHack] cookie (0) | 2022.01.23 |
---|---|
[DreamHack] STAGE3 - Cookie & Session (0) | 2022.01.23 |
[DreamHack] devtools-sources (0) | 2022.01.17 |
[DreamHack] STAGE 2 - Background: Web Browser (0) | 2022.01.14 |
[DreamHack] STAGE 2 - Background : Web (0) | 2022.01.14 |