Web Dev/7. 네트워크
-
HTTP 완벽 가이드 13장 다이제스트 인증Web Dev/7. 네트워크 2021. 2. 21. 14:53
기본 인증을 안전하게 사용하는 유일한 방법은 SSL과 결합해서 사용하는 것이다 다이제스트 인증은 기본인증과 호환되는 더 안전한 대체채로서 개발되었다. 많이는 안쓰이지만, 개념자체는 중요하다 다이제스트 인증의 특징 비밀번호를 절대로 네트워크를 통해 평문으로 전송하지 않는다 인증 체결을 가로채서 재현하려는 악의적인 사람들을 차단한다 구현하기에 따라서,메시지 내용위조를 막는 것도 가능하다 그외 몇몇 잘알려진 형태의 공격을 막는다 1)비밀번호를 안전하게 지키기 위해 요약 사용하기 다이제스트 인증은 "절대로 비밀번호를 네트워크를 통해 보내지 않는다". 대신에 비밀번호를 비가역적으로 뒤섞은 지문(fingerprint), 혹은 요약(digest)을 보낸다 2)단방향 요약 md5같은 요약함수를 통해 일반적으로 입력 가..
-
HTTP 완벽 가이드 12장 기본인증Web Dev/7. 네트워크 2021. 2. 21. 14:52
웹사이트에 있는 개인의 프로필이나 개인이 작성한 문서는 해당 소유자의 동의 없이는 권한이 없는 사용자가 볼 수 없어야한다. 인증이란? 당신이 누구인지 증명하는 것 완벽한 인증이란 없다 인증 프로토콜과 헤더 www-authenticate 단계 헤더 설명 메서드/상태 요청 첫번째 요청에는 인증 정보가 없다 GET 인증 요구 WWW-Authenticate 서버는 사용자에게 사용자 이름과 비밀번호를 제공하라는 의미로 401상태 정보와 함께 요청을 반려한다. 서버에는 각각 다른 비밀번호가 있는 영역들이 있을 것이므로, 서버는 WWW-Authenticate 헤더에 해당 영역을 설명해 놓는다 401 Unauthorized 인증 Authorization 클라이언트는 요청을 다시 보내는데, 이번에는 인증 알고리즘과 사용..
-
HTTP 완벽 가이드 11장 클라이언트 식별과 쿠키Web Dev/7. 네트워크 2021. 2. 21. 14:52
HTTP 는 Stateless한데 요새 웹사이트들은 개별 사용자에 맞춤형 서비스를 제공하고 싶어한다. 그렇기 때문에 어떠한 방식으로 사이트를 개인화 시켜서 사용자한테 제공하려고 한다 사용자를 식별하는 여러가지 방법 HTTP 헤더사용 HTTP 요청 헤더를 이용해서 사용자 정보를 전달할 수 잇다. 헤더이름 헤더타입 설명 From 요청 사용자의 이메일 주소(스팸때문에 잘 쓰이지 않음) User-Agent 요청 사용자의 브라우저 Referer 요청 사용자가 현재 링크를 타고 온 근원 페이지 Authorization 요청 사용자 이름과 비밀번호 Client-ip 확장(요청) 클라이언트의 IP 주소 X-Forwarded-For 확장(요청) 클라이언트의 IP 주소 Cookie 확장(요청) 서버가 생성한 ID 라벨 클..
-
HTTP 완벽 가이드 10장 HTTP/2.0Web Dev/7. 네트워크 2021. 2. 6. 16:15
HTTP/1.1과 HTTP/2.0의 가장 큰 차이점 HTTP1.1은 커넥션 하나에 한 요청과 한 응답밖에 못받았다. 그래서 지연되는 문제때문에 여러 커넥션을 열고 이전에 보낸 요청에대한 응답이 안와도 다음요청을 했는데, 이것도 열수있는 커넥션 수가 제한 되어 있기때문에 지연성 문제를 완전히 해결하지는 못했다. 2.0에서는 하나의 커넥션에 여러개의 스트림이 동시에 열릴수있다. 즉 하나의 HTTP/2.0 커넥션을 통해 여러개의 요청이 동시에 보내질 수 있어서 HTTP1.1에서 겪던 문제를 쉽게 해결 할 수 있다. 모든 스트림은 31비트의 무부호 정수로 된 고유한 식별자를 가진다 스트림이 클라이언트에 의해 초기화 되었다면 이 식별자는 홀수, 서버라면 짝수이다. ㄷ새로 만들어지는 스트림의 식별자는 이전에 만들어..
-
HTTP 완벽 가이드 9장 웹 로봇Web Dev/7. 네트워크 2021. 2. 6. 15:55
웹 로봇이란? 사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램 얘네도 http 프로토콜을 따른다 이런 로봇들은 스스로 마음이 있는것처럼 행동하고, 크롤러,스파이더,웜,봇 등으로 불린다 크롤러와 크롤링 웹 링크를 재귀적으로 따라다니는 로봇을 크롤러 혹은 스파이더라고 부르는데 HTML 하이퍼링크를따라다니기 때문이다 따라다니기때문에 순환에 빠질수도있다. 로봇의 HTTP 로봇은 다른 HTTP 클라이언트 프로그램이랑 비슷하다. 요청을 보내고, 응답을 받는다 User-Agent에 무슨로봇인지 말을 해줘야한다(요청 보낼때) User-Agent 타기팅 웹 관리자들은 많은 로봇이 그들의 사이트를 방문하게 될것임을 명심하고, 로봇들로부터의 요청을 예상해야한다. 로봇 차단하기 로봇이 와가..
-
HTTP 완벽 가이드 8장 통합점Web Dev/7. 네트워크 2021. 1. 30. 11:47
통합점: 게이트웨이, 터널, 릴레이 게이트웨이: 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스 애플리케이션: 서로 다른 형식의 웹 애플리케이션이 통신하는데 사용한다 터널: HTTP 커넥션을 통해서 HTTP가 아닌 트래픽을 전송하는데 사용한다 릴레이: HTTP 프락시로 한번에 한개의 홉에 데이터를 전달하는데 사용한다 cgi란? [여기] www.quora.com/What-is-the-difference-between-Python-CGI-and-Django-Are-they-same wsgi, was, cgi 이해 ssl이란? [여기] ssl터널링? 웹터널은 원래 방화벽을 통해서 암호화된 ssl트래픽을 전달하려고 개발했다 많은 회사가 강력한 보안을 위해 모든 트래픽이 패킷을 필터링하는 라우터와 프락..
-
HTTP 완벽 가이드 7장 캐쉬Web Dev/7. 네트워크 2021. 1. 30. 11:47
웹캐쉬란? 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치 웹 요청이 캐시에 도착했을때, 캐시된 로컬 사본이 존재하면 그문서는 원서버가 아니라 캐시로부터 제공된다 캐쉬가 주는 혜택 불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여준다 네트워크 병목을 줄인다. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있다 원서버에 대한 요청을 줄인다 서버 부하를 줄이고, 더 빨리 응답을 줄수있다 먼곳에서 불러올수록 시간이 많이 걸리는데, 캐시는 거리로 인한 지연을 줄여준다 적중과 부적중 캐시에 요청이 도착했을때, 그에대응하는 사본이 있으면 캐시 적중(chche hit) 없으면 원서버로 요청 전달. 캐시 미스(cache miss) 재검사(revalidation) 원서버 컨텐츠가 변경되는것..
-
HTTP 완벽 가이드 5장 웹서버Web Dev/7. 네트워크 2021. 1. 17. 23:40
웹서버란? 웹서버 소프트웨어와 웹페이지 제공에 특화된 장비 크든 작든, 리소스에 대한 HTTP 요청을 받아서 콘텐츠를 클라이언트에게 돌려준다 웹서버 구현 웹서버는 HTTP 및 그와 관련된 TCP처리를 구현한 것 HTTP 프로토콜을 구현하고 웹 리소스를관리하고 웹서버 관리기능을 제공 웹서버의 형태 다목적 소프트웨어 웹서버 네트워크에 연결된 표준 컴퓨터 시스템에서 동작 ex) 아파치 직소 등등의 오픈소스나 상용 소프트웨어, nginx 마이크로프로세서의 기적 덕에, 사용자에게 판매할 전자기기안에 몇개의컴포터 칩만으로 구현된 웹서버를 내장 시켜서 완전한 관리콘솔로 사용가능(-> WOW) Node JS 웹서버 구현 예제: [생활코딩] 아파치와 엔진엑스를 비교해보자 Nodejs 서버 구성시 nginx를 사용해야하는..