
HTTP(Hypertext Transfer Protocol)는 월드 와이드 웹(www)의 토대이며 웹을 통해서 텍스트, 이미지,사운드,비디오 등 다양한 DATA를 전송하기 위한 일련의 규칙입니다. HTTP의 기초 토대인 TCP/IP 프로토콜를 토대로 실현되는 애플리케이션 프로토콜입니다.
HTTP 프로토콜은 인터넷(network)를 토애 클라이언트와 서버간의 리소스가 교환됩니다. 클라이언트 장치는 웹 페이지를 로드하는 데 필요한 리소스에 대한 요청을 서버에 보냅니다. 서버는 요청을 이해하기 위해 클라이언트에 응답을 다시 보냅니다. 요청과 응답은 이미지, 텍스트, 텍스트 레이아웃 등에 대한 데이터와 같은 하위 문서를 공유합니다. 하위 문서는 전체 웹 페이지 파일을 표시하기 위해 클라이언트 웹 브라우저에 의해 결합됩니다.
웹 서버는 제공할 수 있는 웹페이지 파일 외에도 HTTP 요청을 기다리고 도착 시 이를 처리하는 프로그래ㅐㅁ인 HTTP 데몬을 포함합니다. 웹 브라우저는 서버에 요청을 보내는 HTTP 클라이언트입니다. 브라우저 사용자가 URL을 입력하거나 하이퍼 텍스트 링크를 클릭하여 웹 파일을 '열기'하여 파일 요청을 입력하면 브라우저는 HTTP 요청을 작성하고 이를 URL이 나타내는 인터넷 프로토콜 주소(ip주소)로 보냅니다. 대상 서버의 HTTP데몬은 요청을 수신하고 요청된 파일 또는 요청과 관련된 파일을 다시 보냅니다.
이러한 요청/응답 쌍이 전송될 때 TCP/IP를 사용하여 1과 0으로 구성된 이진 시퀀스의 작은 패킷으로 정보를 줄이고 전송합니다. 이러한 패킷은 전선, 광섬유 커에블 및 무선 네트워크를 통해 물리적으로 전송됩니다.
서버와 클라이언트가 서로 데이터를 공유하기 위해 사용되는 요청과 응답은 ASCII 코드로 구성돕니다. 요청에는 클라이언트가 서버에서 어떤 정보를 찾고 있는지 명시되어 있습니다. 응당ㅂ에는 클라이언트 브라우저가 웹 페이지로 변환활 코드가 포함되어 있습니다.
HTTPS는 SSL(SECURE SOCKETS LAYER)또는 TLS(전송 계층 보안)을 일반 HTTP 애플리케이션 계층 아래의 하위 계층으로 사용하는 것입니다. HTTPS는 사용자 HTTP 페이지 요청과 웹 서버에서 반환하는 페이지를 암호화하고 해독합니다. 또한 도청 및 중간자 (MitM)공격으로부터 보호합니다. HTTPS는 Netscape에서 개발되었습니다. HTTP에서 HTTPS로 마이그레이션하는 것은 추가 보안 및 신뢰 계층을 제공하므로 유익한 것으로 간주됩니다.
클라이언트와 서버 간의 각 상호 작용을 메시지(message)라고 합니다. HTTP 메시지는 요청 또는 응답입니다. 클라이언트 장치는 서버에 HTTP요청을 제출하고, 서버는 HTTP응답을 클라이언트에 다시 응답합니다.
이는 인터넷 브라우저와 같은 클라이언트 장치가 웹사이트를 로드한느데 필요한 정보를 서버에 요청하는 경우입니다. 요청은 클라이언트 장치에 대한 응답을 조정하는 데 필요한 원하는 정보를 서버에 제공합니다. 각 HTTP요청에는 다음과 같은 정보와 함께 인코딩된 데이터가 포함됩니다.
HTTP 메소드는 클라이언트가 서버에게 수행하길 원하는 동작을 나타내는데 사용됩니다.
가장 많이 사용되는 HTTP 메소드는 7개 정도입니다.
1. GET : 서버로부터 리소스 요청
2. POST : 서버로 데이터를 제출
3. PUT : 서버에 리소스를 생성하거나 업데이트
4. DELETE : 서버에서 리소스를 삭제
5. PATCH : 서버에서 리소스의 일부를 수정
6. HEAD : 서버로부터 리소스의 헤더 정보만을 요청
7. OPTIONS : 서버가 특정 리소스에서 지원하는 HTTP메소드를 확인하기 위해 사용
HTTP 요청 헤더에서는 사용 중인 브라우저 유형, 요청이 서버에서 찾고 있는 데이터 등의 데이터가 포함됩니다. 또한 요청을 처리하는 서버에서 이전에 보낸 정보를 표시하는 쿠키도 포함이 가능합니다.
이는 웹사이트에 제출되는 사용자 양식(사용자 이름/비밀번호 로그인, 짧은 응답 및 파일 업로드)과 같이 요청에서 서버가 필요로 하는 선택적 정보입니다.
HTTP 응답 HTTP응답 메시지는 웹 서버로부터 클라이언트 장치가 수신한 데이터입니다. 이름에서 알 수 있듯이 응답은 HTTP 요청에 대한 서버의 응답입니다. HTTP 응답에 포함된 정보는 서버가 요청에서 받은 컨텍스트에 맞게 조정됩니다. HTTP 응답에는 일반적으로 아래의 상태 코드가 포함됩니다.
HTTP 요청에 대한 응답으로 서버는 종종 요청이 처리 중이거나 요청에 오류가 있거나 요청이 리디렉션되고 있음을 나타내는 응답 코드를 발행합니다. 일반적인 응답 코드는 다음과 같습니다.
1. 200 OK:
요청이 성공적으로 처리되었음을 나타냅니다. 주로 GET 또는 POST와 같은 요청에 대해 서버가 적절한 응답을 반환하는 경우 사용됩니다.
2. 300 Multiple Choices:
요청한 리소스가 여러 개 존재하고, 클라이언트가 선택해야 함을 나타냅니다. 주로 리디렉션에 사용됩니다.
3. 401 Unauthorized:
클라이언트 또는 사용자가 요청한 리소스에 접근할 권한이 없음을 나타냅니다. 보통 로그인이 필요한 경우 사용됩니다.
4. 403 Forbidden:
클라이언트의 요청이 서버에 의해 거부되었음을 나타냅니다. 클라이언트가 리소스에 접근할 수 있는 권한이 없는 경우 사용됩니다.
5. 404 Not Found:
요청한 리소스가 서버에 존재하지 않음을 나타냅니다. 가장 흔히 발생하는 오류 코드 중 하나입니다.
6. 500 Internal Server Error:
서버가 요청을 처리하는 동안 예상치 못한 오류가 발생했음을 나타냅니다. 일반적으로 서버 측의 문제로 인해 발생합니다.예를 들어, 서버 오류
URL은 "Uniform Resource Locator"의 야어로, 인터넷 상의 리소스(웹페이지, 이미지, 동영상)을 가리키는 주소입니다. 일반적으로 웹 브라우저의 주소 표시줄에 표시되는 문자열입니다.
이 블로그의 글의 URL은 https://velog.io/@andy3400/HTTP-%ED%9D%90%ED%8A%B8%ED%8A%B8%ED%94%84%EC%9D%B8%EA%B0%80 입니다.
여기에서 알 수 있는 것은 https 보안통신을 하고 있고 velgo.io에서 @andy3400이라는 계정을 통해서 블로그를 작성하고 있습니다.
([출처]https://www.cloudflare.com/ko-kr/learning/ddos/glossary/hypertext-transfer-protocol-http/)