본문 바로가기

Stg21

HTTP와 연계하는 웹 서버 가상 호스트 (Virtual Host) HTTP/1.1 에서는 하나의 HTTP 서버에 여러 개의 웹사이트를 실행할 수 있다. 예를 들면 웹 호스팅을 제공하고 있는 사업자는 1대의 서버에 여러 고객의 웹사이트를 넣을 수 있다. 고객마다 다른 도메인을 가지고 다른 웹사이트를 실행할 수 있는데 이를 위해 가상 호스트 (Virtual Host) 라는 기능을 사용하고 있다. 가상 호스트를 사용하면 물리적으로는 서버가 1대지만 가상으로 여러 대가 있는 것처럼 설정할 수 있다. 인터넷에서 도메인명은 DNS 에 의해서 IP 주소로 변환되고 나서 엑세스 하게 된다. 결국 리퀘스트가 서버에 도착한 시점에는 IP 주소를 기준으로 엑세스 하게 된다. 이 때 1대의 서버 안에 가상 호스트를 이용한 여러개의 도메인이 실행되고 있.. 2023. 4. 12.
HTTP 상태코드 클라이언트가 서버를 향해 리퀘스트를 보낼 때, 서버에서 그 결과가 어떻게 되었는지 알려주는 것이 상태 코드의 역할이다. 서버가 리퀘스트를 정상적으로 처리했는지, 그렇지 않으면 리퀘스트 결과가 에러였는지를 알 수 있다. 상태 코드 클래스 클래스 설명 1XX Informational 리퀘스트 받아서 처리중 2XX Success 리퀘스트를 정상적으로 처리했음 3XX Redirection 리퀘스트를 완료하기 위해 추가 작업 필요 4XX Client Error 서버는 리퀘스트 이해 불가능 5XX Server Error 서버는 리퀘스트 처리 실패 2XX 성공(Success) 1) 200 OK 클라이언트가 보낸 리퀘스트를 서버가 정상 처리하였음을 나타낸다. 리스폰스에서 상태 코드와 함께 되돌아 오는 정보는 메소드에 .. 2023. 4. 11.
Persistent connection / Stateless Persistent connection HTTP 초기 버전에서는 HTTP 통신을 한 번 할 때마다 TCP 에 의해 연결을 종료할 필요가 있었다. 초기 통신은 작은 사이즈의 텍스트를 보내는 정도였기 때문에 이렇게 기능을 구현해도 문제가 없었으나, HTTP 가 널리 보급되어 감에 따라 다량의 이미지를 포함한 문서 등이 늘어나게 되었다. 하나의 HTML 에 여러 이미지가 포함되어 있는 경우 브라우저를 사용해서 리퀘스트를 하면 HTML 문서에 포함되어 있는 이미지를 획득하기 위해서 여러 리퀘스트를 송신하게 된다. 이때 리퀘스트를 보낼 때마다 매번 TCP 연결과 종료를 하게 되어 쓸모없는 통신량이 늘어났다. 이러한 문제를 해결하기 위해 HTML 1.1 버전에서는 지속연결(Persistent connection) .. 2023. 4. 6.
HTTP 메소드 HTTP 에서 사용 가능한 다양한 메소드에 대해서 알아보자. GET : 리소스 획득 GET 메소드는 리퀘스트 URI 로 식별된 리소스를 가져올 수 있도록 요구한다. 가져올 리소스 내용은 지정된 리소스를 서버가 해석한 결과이다. POST : 엔티티 전송 POST 메소드는 엔티티를 전송하기 위해서 사용된다. GET 으로도 엔티티를 전송할 수 있지만, 자주 사용하지 않고 일반적으로 POST 를 사용한다. PUT : 파일 전송 PUT 메소드는 파일을 전송하기 위해서 사용된다. FTP 에 의한 파일 업로드와 같이, 리퀘스트 중에 포함된 엔티티를 리퀘스트 URI 로 지정한 곳에 보존하도록 요구한다. 다만 HTTP/1.1 PUT 에는 인증 기능이 없어 누구든지 파일 업로드가 가능하다는 보안 문제가 있어서 일반적인 웹.. 2023. 4. 5.
HTTP HTTP 는 클라이언트와 서버간에 통신을 하는 프로토콜로 리퀘스트와 리스폰스를 교환하여 성립한다. 아래는 클라이언트 측으로부터 서버에 송신된 리퀘스트의 예시이다. GET /members/100 HTTP /1.1 Host : localhost:8080 GET 은 서버에 요구하는 메소드의 종류를 의미하며, /members/100 은 리소스를 의미한다. (이 리소스를 리퀘스트 URI 라고 한다.) 그리고 HTTP 1.1 은 클라이언트 기능을 식별하기 위한 HTTP 버전 번호이다. 즉, 여기서의 리퀘스트 내용은 HTTP 서버상에 있는 "/members/100" 이라는 리소스가 필요하다는 리퀘스트이다. 이러한 리퀘스트를 받은 서버는 리퀘스트의 내용을 처리한 결과를 리스폰스로 클라이언트에 되돌려 준다. HTTP /.. 2023. 4. 4.
URI 와 URL URI 는 Uniform Resource Identifiers 의 약자로, RFC2396 에서는 각각의 단어가 아래와 같이 정의되어 있다. Uniform 통일 (Uniformity) 된 서식을 결정하는 것으로, 여러 가지 종류의 리소스 지정 방법을 같은 맥락에서 구별 없이 취급할 수 있게 한다. 또한, 새로운 스키마 (http, ftp 등) 도입을 용이하게 한다. Resource 리소스는 식별 가능한 모든 것이라고 정의되어 있다. 도큐먼트 파일 뿐만 아니라 이미지와 서비스 등 다른 것과 구별할 수 있는 것은 모두 리소스이다. 또한 리소스는 단일한 부분만 아니라 복수의 접합도 리소스로 파악할 수 있다. Identifier 식별 가능한 것을 참조하는 오브젝트이며 식별자로 불린다. 결국, URI 는 스키마를 .. 2023. 4. 1.