W1-1 HTTP/HTTPS

hyuun01·2022년 9월 14일
0

WebHacking

목록 보기
1/12

1. 인코딩

파일에 저장된 정보의 형태를 다른 것으로 변경하는 것

ex) 아스키코드, 유니코드

2. 통신 프로토콜

규격화된 상호작용에 적용되는 약속

ex) TCP/IP(네트워크 통신), HTTP(웹 어플리케이션), FTP(파일)

3. HTTP(Hyper Text Transfer Protocol)

서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜

클라이언트 --요청--> 서버
클라이어트<--응답-- 서버

4. 포트

1) 네트워크 포트(Network Port)

네트워크에서 서버와 클라이언트가 정보를 교환하는 추상화된 장소

2) 서비스 포트(Service Port)

네트워크 포트 중에서 특정 서비스가 점유하고 있는 포트

  • 포트로 데이터 교환 시, 전송계층(Transport Layer)의 프로토콜 따름
    ex) TCP, UDP

  • 서비스 포트 사용 시, 전송 계층 프로토콜 같이 표기

ex) HTTP가 80번 포트를 점유하는 상황
--> HTTP의 서비스 포트는? : 80번 포트

ex) HTTP의 서비스 포트 TCP/80 = HTTP 서비스를 80번 포트에서 TCP로 제공 중

3) 포트의 개수

운영체제에서 정의하기 나름
보통 0~65535번 사용 // 총 65536개

  • 잘 알려진 포트(Well-known port), 특권 포트(Privileged port)
    : 0~1023번
    ex) 22(SSH), 80(HTTP), 443(HTTPS)

5. HTTP 요청(Request)

  • 서버에게 특정 동작을 요구하는 메시지
  • 서버는 해당 동작이 적절할 때만 처리

Request 형식

(HTTP method) (Reques URL) (HTTP version)
(Request Header)

GET /index.html HTTP/1.1
Host: dreamhack.io
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

1) HTTP 메소드

  • URL이 가리키는 리소스를 대상을로 서버가 수행하길 바라는 동작

  • ex) GET, POST, ...

HTTP Semantics

2) 요청 URL

  • 메소드의 대상

3) HTTP 버전

  • 클라이언트

6. HTTP 응답(Response)

Response 형식

(HTTP version) (Return Code)
(Response Header)
(Response Body)

HTTP/1.1 200 OK
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 61
Connection: Keep-Alive
Content-Type: text/html

<!doctype html>
<html>
<head>
</head>
<body>
</body>
</html>

1) HTTP 버전

  • 서버에서 사용하는 HTTP 프로토콜의 버전

2) 상태코드(Status Code)

  • 요청에 대한 처리 결과
  • 세자릿수로 나타냄
  • HTTP 표준인 RFC2616은 40여개의 상태코드 정의, 다음과 같이 5개의 클래스로 분류됨
    • 1xx : 요청을 제대로 받았고 처리가 진행 중
  • 2xx : 요청이 제대로 처리됨
    ex) 200(성공)
  • 3xx : 요청을 처리하려면 클라이언트가 추가 동작을 취해야
    ex) 302(다른 URL로 갈 것)
  • 4xx : 클라이언트가 잘못된 요청을 보내어 처리에 실패
    ex) 400(요청이 문법에 맞지 않음), 403(클라이언트가 리소스에 요청할 권한이 없음), 404(리소스 없음)
  • 5xx : 클라이언트의 요청은 유효하지만, 서버에 에러가 발생하여 처리에 실패
    ex) 500(요청을 처리하다가 에러가 발생), 503(서버가 과부하로 인해 요청을 처리할 수 없음)

3) 처리 사유(Reason Phrase)

  • 상태코드가 발생한 이유를 짧게 기술한 것

7. HTTP 메시지

HTTP 메시지 (종류) = HTTP 요청 + HTTP 응답

HTTP 메시지 (구조) = HTTP 헤드 + HTTP 바디

  • HTTP 헤드와 HTTP 바디는 CRLF 한 줄로 구분됨

1) HTTP 헤드

  • 헤더 = 필드 + 값
  • HTTP 메시지 OR HTTP 바디의 속성 나타냄
  • 하나의 HTTP 메시지는 0개 이상의 헤더가짐

2) HTTP 바디

  • 클라이언트가 서버에게 전송하려는 데이터

8. HTTPS(HTTP over Secure socket layer)

  • TLS(Transport Layer Security) 프로토콜 이용해 도청과 변조로부터 보호
  • TLS는 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화

0개의 댓글