보안
HTTP Basics
짱구는굿
2023. 8. 29. 17:04
HTTP(Hypertext Transfer Protocol)는 월드 와이드 웹에서 데이터 통신의 기반을 이루는 프로토콜입니다. 클라이언트(일반적으로 웹 브라우저)가 서버에게 웹 페이지, 이미지, 비디오 등의 리소스를 요청하고, 서버가 해당 요청에 응답하는 방식을 정의하는 프로토콜입니다. 다음은 HTTP와 관련된 기본 개념입니다:
HTTP는 웹 통신의 기반을 형성하여 클라이언트와 서버 간의 정보 검색과 공유를 가능하게 합니다. 웹 개발, API 및 기타 웹 관련 기술과 작업 시 이러한 기본 개념을 이해하는 것이 중요합니다.
- 요청과 응답: HTTP에서 클라이언트와 서버 간의 통신은 요청과 응답을 중심으로 이루어집니다. 클라이언트가 서버에 HTTP 요청을 보내면, 서버는 HTTP 응답으로 응답합니다.
- HTTP 메서드: HTTP는 리소스에 대해 수행할 작업의 유형을 나타내는 여러 가지 메서드(동사로 불리기도 함)를 정의합니다. 일반적인 메서드에는 다음이 포함됩니다:
- GET: 리소스를 검색합니다.
- POST: 데이터를 제출하여 처리합니다(예: 양식 제출).
- PUT: 리소스를 업데이트합니다.
- DELETE: 리소스를 제거합니다.
- URL(Uniform Resource Locator): URL은 웹에서 리소스를 찾기 위한 표준화된 주소입니다. 프로토콜("http" 또는 "https"), 도메인 이름, 경로, 쿼리 매개변수 및 프래그먼트 식별자와 같은 여러 구성 요소로 이루어져 있습니다.
- 헤더: HTTP 헤더는 요청과 응답 모두에 추가 정보를 제공하는 역할을 합니다. 콘텐츠 유형, 인코딩, 캐싱 지침 등 요청 또는 응답에 대한 메타데이터를 제공합니다.
- 상태 코드: HTTP 응답에는 요청의 결과를 나타내는 세 자리 상태 코드가 포함됩니다. 일반적인 상태 코드 범위는 다음과 같습니다:
- 2xx: 성공적인 응답.
- 3xx: 리디렉션 응답.
- 4xx: 클라이언트 오류 응답(예: "찾을 수 없음"을 나타내는 404).
- 5xx: 서버 오류 응답(예: "내부 서버 오류"를 나타내는 500).
- 쿠키: 쿠키는 서버에서 보내고 클라이언트 측에 저장되는 작은 데이터 조각입니다. 세션 관리와 사용자 추적 등 다양한 목적으로 사용됩니다.
- 세션: HTTP는 상태를 유지하지 않는데, 이는 각 요청-응답 주기가 독립적이라는 의미입니다. 세션은 종종 쿠키와 서버 측 기술을 사용하여 여러 요청 간에 사용자 상태를 유지하는 데 활용됩니다.
- 캐싱: 캐싱은 클라이언트가 리소스의 사본을 로컬에 저장하여 서버로의 반복된 요청을 줄이는 것을 가능하게 합니다. 이로써 성능이 향상되고 대역폭 사용량이 감소합니다.
- HTTPS: HTTPS(HTTP Secure)는 데이터의 기밀성과 무결성을 보장하기 위해 암호화(SSL/TLS)를 사용하는 안전한 HTTP의 버전입니다.
- 사용자 에이전트: 웹 브라우저나 모바일 앱과 같은 사용자 에이전트는 사용자 대신 HTTP 요청을 보냅니다. "User-Agent" 헤더를 사용하여 서버에 자신을 식별합니다.
처음 화면은 개념,목표, 작동 원리를 알려준다 |
Try It는 사용자가 이름을 입력을해서 보내면, 서버에서 입력값을 반대로 응답을 해주는 간단한 실습이다 12345를 입력을 하고 Go!를 누르면, 서버에서 전달한 값을 반대로 응답을 해주는걸 알수있다 |
퀴즈의 문제는 아래 보이는 실습에서는 어떤 HTTP Request method를 사용하는지에 대한 질문과 magic number가 몇번인지를 묻는 질문으로 이루어져 있다 . 프록시 툴을 통해 확인한 Request 패킷의 Start line을 보면 POST 메서드를 사용하여 통신했음을 알 수 있다. 추가로 내가 입력한 값은 1과 1 2개뿐인데 Request body에 보면 파라미터가 3개이다. 아마 html 내 숨겨져있는 데이터가 있는것 같다. 눈에 보이지는 않지만 Request 패킷을 통해 magic_num이라는 값이 30라는 것을 알 수 있다. |
풀이 끝 |