본문 바로가기

숙제

(14)
HTTPS 란 무엇일까 1.https란 HTTP는 포스팅한 것이 있으니 참조를 하자 (다른 사람걸 참조하는게 더 좋다!) HTTP는 정보를 텍스트로 주고 받는다. 이때 네트워크에서 전송신호를 가로채는 경우에는 데이터 유출이 발생할 수 있다. HTTP는 통신 프로토콜이다. HTTPS 역시 통신 프로토콜이다. 대신 보안성이 더 좋아진다. HTTPS는 HTTP에 Secure Socket 이 추가된 것이다. HTTPS의 정확한 이름은 'Hypertext Transfer Protocol Over Secure Socket Layer' 이다. 여기서 굵직한 글자를 합치면 SSL이 된다. HTTPS는 SSL 위에서 작동하는 프로토콜이다. 그냥 보안만 좋은 프로토콜이겠거니 할 수도 있지만 HTTP / HTTPS 여부는 검색엔진에서 도메인을 평..
http 란 무엇일까 1. HTTP란? HTTP란 Hyper Text Transfer Protocol 의 약자이다. 즉 HTTP는 프로토콜의 일종이다. 인터넷에서 우리는 웹 페이지(HTML), text, 이미지, 음성등의 데이터를 주고 받는다. 이때 데이터를 주고 받을 수 있게 해주는 프로토콜이 HTTP이다. 2. HTTP 의 동작 클라이언트와 서버는 request(요청) 와 response(응답) 를 한다. 요청과 응답시에는 각각 자신의 정보를 담은 메세지를 상대에게 보내는데, 이 메세지를 HTTP 메세지라 한다. HTTP 메세지는 start line / header / body 로 구성이된다. start line 은 요청시에는 메소드 버전, 요청이 전송되는 주소(request target), http 버전의 의 정보를 가..
웹서버 nginx 1. nginx 란 무엇일까 오픈소스에 유료지원도 있는 웹 서버이다. 가볍고 높은 성능을 목표로 하고 있으며 웹서버, 리버스 프록시, 메일프록시 와 같은 기능도 수행할 수 있다. 거의 모든 unix 계열 OS에서 지원되며, windows 에서는 부분적으로 지원이된다. niginx를 설명하는 키워드들은 event driven 아키텍쳐 / 적은 메모리 사용 / C10K problem의 해결 등으로 말 할 수 있을것 같다. 2. nginx 의 대략적인 특징 async event-driven 방식을 사용하는 이벤트 지향 아키텍쳐이다. 메모리 생성 속도가 빠르다. 더 적은 쓰레드로 많은 클라이언트 처리가 가능하다. 환경설정을 바꾼 후 서버 데몬을 재시작할 필요 없이 reload 신호만 보내면 된다. 즉, 프로세스..
포워드 프록시 와 리버스 프록시 한번쯤 들어본 톰캣과 같은 was나 아파치 웹 서버는 한번쯤 들어봤을 것이다. 아파치 웹서버에는 mod_proxy 라는 모듈에서 forward proxy 와 reverse proxy 이 두가지 기능을 제공한다. 반면 nignx는 reverse proxy 만 제공한다고 한다. 그럼 proxy와 reverse proxy, forward proxy란 무엇일까 1.proxy 서버 프록시 서버는 컴퓨터 시스템이나 프로그램이다. 클라이언트가 자신을 통해 네트워크 서비스에 간접적으로 접속을 할 수 있게 하는 역할이다. 즉, 서버와 클라이언트 사이에 있는 녀석이다. 프록시를 둠으로서 서버로 요청된 내용을 임시저장해 놓고 (캐싱) 그럼 왜 쓸까? -- 동일한 요청에 대해 응답을 바로 주는 등의 장점때문에 사용한다. 즉,..
메시지 큐 (Message Queue)란? 1. 메시지 큐란? 요약하자면, 미들웨어에서 쓰는 메시지 전달 방식중 하나이다. 미들웨어는 어플리케이션들의 중개자가 되어 어플리케이션간의 데이터 통신을 가능하게 해주는 소프트웨어다. 이런 미들웨어중 Message Oriented Middleware 라는 미들웨어도 있다. MOM 이라고 하는 이런 미들웨어는 메시지 API 를 사용해 어플리케이션 간의 비동기식 데이터 교환을 가능하게 해준다. 이런 MOM 을 구현한 시스템을 Message Queue 라고 한다. 서로 다른 프로세스나 프로그램 사이에서 메시지를 교환할때 Advanced Message Queue Protocol 을 이용한다. 위의 AMQP 는 Message Oriented Middleware 를 위한 프로토콜이다. 이 프로토콜은 wire-prot..
서블릿(servlet) 이란? 서블릿이란 무엇일까? 웹을 만들기 위한 기술이다. 서블릿은 요청과 응답을 메서드로 다룰 수 있게 해주는 기술이다. 자바기반의 기술로 HTTP 서비스를 지원하는 javax.servlet.http.Httpservlet 클래스를 상속받아 구현한다. 때문에 서블릿은 웹 요청과 응답을 관리하는 클래스 라고 생각해도 괜찮을 거 같다. 1. 서블릿의 특징은? - html을 사용하여 요청에 응답한다. - Java Thread를 이용하여 동작한다. - UDP보다 처리 속도가 느리다. - HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다. 2. 서블릿 컨테이너 서블릿을 관리하는 건 서블릿 컨테이너다. 서블릿 컨테이너는 HttpsServletRequest와 HttpServletResponse 두 객체를 생성한..