개발관련 도서/Http&Network Basic 10

제11장 웹 공격 기술

1. HTTP에는 보안 기능이 없다. 웹사이트 대부분은 인증이나 세션 관리, 암호화 등의 보안 기능이 필요하지만 이들은 HTTP에 존재하지 않는다. SSH 프로토콜에는 프로토콜 레벨에서 인증이나 세션 관리 등의 기능이 준비되어 있지만 HTTP에는 없다. 따라서 웹 애플리케이션에서 인증이나 세션 관리 기능을 개발자가 설계하고 구현해야 한다. 2. 웹 애플리케이션에 대한 공격 1) 서버를 노리는 능동적 공격 능동적 공격은 공격자가 직접 웹 애플리케이션에 액세스 하는 공격 코드를 보내는 타입의 공격이다. 이 타입의 공격은 서버상의 리소스에 대해 직접 실행된다. 대표적인 예로는 SQL 인젝션과 OS 커맨드 인젝션 등이 있다. 2) 유저를 노리는 수동적 공격 일반적으로 a. 공격자가 설치한 함정에 유저를 유도하고..

제9장. HTTP에 기능을 추가한 프로토콜/ 제10장 웹 콘텐츠에서 사용하는 기술

1. HTTP의 병목 현상 관련 HTTP에서는 서버의 정보가 갱신되었는지 확인하기 위해 클라이언트가 항상 서버 측에 확인하러 가야 한다. 만약, 서버 상의 정보가 갱신되지 않은 경우에는 불필요한 통신이 발생하게 된다. 리퀘스트는 클라이언트에서만 시작할 수 있고 리스폰스만 받는 것은 불가능하기 때문이다. (서버에서 통신을 개시하는 서버 푸시 기능은 예외) 2. 브라우저에서 양방향 통신을 하는 WebSocket WebSocket프로토콜이란 웹 서버와 클라이언트가 한번 접속을 확립하면 그 뒤의 통신을 모두 전용 프로토콜로 하는 방식으로 JSON이나 XML, HTML, 이미지 등 임의 형식의 데이터를 보내게 된다. HTTP에 의한 접속의 출발점이 클라이언트에 있다는 것은 변함이 없지만 한 번 접속을 확립하면 W..

제 8장 누가 액세스하고 있는지를 확인하는 인증

1. 인증이란? 특정 웹사이트에 들어가기 위해 로그인하는 과정이라고 생각하면 됨. 인증을 위한 수단으로는 아래의 것들이 있다. a. 패스워드 : 본인만 알고 있는 문자열 정보 b. 원타임 토큰 : 본인만이 가지고 있는 기기 등에 표시되는 한 번 쓰고 버리는 패스워드 등의 정보 c. 전자 증명서 : 본인(단말기)만이 가지고 있는 정보 d. 바이오 매트릭스 : 지문이나 홍채 등 본인의 신체 정보 e. IC 카드 등 : 본인 만이 가지고 있는 정보 HTTP에서 사용하는 인증 방법은 BASIC인증, DIGEST인증, SSL클라이언트 인증, 폼 베이스 인증 등이 있다. 구체적인 내용은 아래에서 살펴본다. 2. BASIC 인증 1) BASIC 인증이 필요한 리소스에 리퀘스트가 있을 경우 서버는 401 상태 코드와 ..

7장 HTTPS

1. HTTP의 약점 1) 평문(암호화하지 않은) 통신이기 때문에 도청 가능 HTTP는 자신을 암호화하는 기능이 없기 때문에 통신 전체가 암호화되지 않는다. 즉, 평문으로 HTTP메시지를 보내게 된다. 이를 방지하기 위해 a. 통신 암호화(SSL이나 TLS이라는 다른 프로토콜을 조합해서 HTTP 통신 내용을 암호화할 수 있다.)나 b. 콘텐츠 암호화(콘텐츠 내용 자체를 암호화하는 방법)등을 이용할 수 있다. 2) 통신 상대를 확인하지 않기 때문에 위장 가능하다. HTTP를 사용한 리퀘스트나 리스폰스에서는 통신 상대를 확인하지 않는다. 따라서 누구든지 리퀘스트를 보낼 수 있고 누구든지 리스폰스를 반환할 수 있다. 이를 보완하기 위해 상대를 확인하는 증명서의 기능을 하는 SSL을 활용할 수 있다. SSL은 ..

6장 HTTP 헤더

1. 메시지 헤더 : HTTP 프로토콜의 리퀘스트와 리스폰스에는 반드시 메시지 헤더가 포함되어 있다. 메시지 헤더에는 클라이언트나 서버가 리퀘스트 리스폰스를 처리하기 위한 정보가 들어있다. 그리고 메시지 바디의 크기나 사용하고 있는 언어, 인증 정보 등을 브라우저나 서버에 제공하기 위해 사용된다. 예를 들어 Content-Type:text/html이라는 메시지 바디의 오브젝트 타입을 가리키는 헤더 필드가 있다. 2. Keep-Alive에 관하여 Http는 state less이며 connection less이다. 따라서 데이터를 주고받을 때마다 열고 닫고를 반복하는데 Keep-Alive를 설정하면 데이터를 지정한 시간 내에 지정한 횟수 내에서 데이터를 빈번하게 주고받을 수 있다. 1) Keep-Alive의..

제 5장. HTTP와 연계하는 웹 서버

1. 통신을 중계하는 프로그램 : 1) 프록시 서버 : 서버와 클라이언트의 양쪽 역할을 하는 중계 프로그램으로, 클라이언트로부터의 리퀘스트를 서버에 전송하고 서버로부터의 리스폰스를 클라이언트에 전송한다. a. 캐싱 프록시 : 프록시로 리스폰스를 중계하는 때 프록시 서버 상에 리소스 캐시를 보존해 두는 타입의 프록시이다. 프록시에 다시 같은 리소스에 리퀘스트가 온 경우, 오리진 서버로부터 리소스를 획득하는 것이 아니라 캐시를 리스폰스로 돌려주는 것이 있다. 그러나 캐시에도 유효기간이 있어서 캐시서버에서 오리진 서버로 새로운 리소스를 획득하러 가는 경우도 있다. * 캐시 서버뿐만 아니라 클라이언트 측에도 캐시가 존재한다. b. 투명 프록시 : 프록시로 리퀘스트와 리스폰스를 중계할 때 메시지 변경을 하지 않는..

제4장 결과를 전달하는 HTTP 상태코드

3장은 특별한 내용 없다. Request와 Respose 메시지에 대해서는 :https://prde.tistory.com/81 Http와 REST 1. Http 프로토콜 HTTP 메시지 프로토콜은 반드시 request/response의 한쌍으로 구성되어있다. 그리고 request와 response는 각각 header와 body로 이루어져 있고 header와 body 사이에는 반드시 한 줄이 띄.. prde.tistory.com 1. 상태 코드 1) 2XX (성공) 204 : 리퀘스트를 성공했지만 돌려줄 리소스 없을 경우 : 클라이언트에서 서버로 정보를 보내는 것으로 족하고, 클라이언트에 새로운 정보를 보낼 필요가 없는 경우 사용 206 : 이 리스폰스는 Content-Range로 지정된 범위의 엔티티가 ..

2장. 간단한 프로토콜 HTTP(HTTP1.1)

1. Request와 Response 1) Request 메시지 구성 2) Response 메시지 구성 2. HTTP 프로토콜의 특징 1) HTTP는 상태를 유지하지 않는 stateless 프로토콜이다. HTTP 프로토콜 독자적으로 Request와 Response를 교환하는 동안에 상태를 관리하지 않는다. 이를 보완하기 위해 쿠키가 등장(쇼핑몰에서 로그인 후 다른 사이트로 이동해도 로그인 상태 유지되도록) 2) URI를 통해 인터넷 상의 어떤 장소에 있는 리소스도 호출할 수 있다. ( 모든 URI를 리퀘스트 URI에 포함하거나 Host 헤더 필드에 네트워크 로케이션을 포함하거나) 3) HTTP 메서드 a. GET : 리소스 획득 메서드이다. b. POST : 엔티티 전송 메소드 c. PUT : 파일 전송..

1장. 웹과 네트워크의 기본에 대해 알아보자

1. HTTP 1) WWW(World Wide Web)를 구성하는 기술로는 SGML을 베이스로 한 HTML, 문서 전송 프로토콜로는 HTTP, 문서의 주소를 지정하는 방법으로URL 등세 가지로 제안되었다. 2.TCP/IP 1) 컴퓨터와 네트워크 기기가 상호 간에 통신하기 위해 서로 같은 방법으로 통신해야 한다. 이러한 규칙을 '프로토콜'이라고 한다. 2) 프로토콜에는 a. 케이블 규격과 IP주소 지정 방법 b. 떨어진 상태를 찾기 위한 방법 c. 그곳에 도달하는 순서 d. 웹을 표시하기 위한 순서와 같은 여러 가지가 있다. 3) TCP/IP는 애플리케이션 계층, 트랜스포트 계층, 데이터링크 계층, 링크 계층으로 나뉘어 있다. a. 애플리케이션 계층 : 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움..

그림으로 배우는 Http&Network Basic 목차

1. 웹과 네트워크의 기본 https://prde.tistory.com/98?category=959443 2. 간단한 HTTP 프로토콜 https://prde.tistory.com/99?category=959443 4. 결과를 전달하는 HTTP 상태코드 https://prde.tistory.com/102 5. HTTP와 연계하는 웹 서버 https://prde.tistory.com/104 6. HTTP 헤더 7. 웹을 안전하게 하는 HTTPS https://prde.tistory.com/108 8. 누가 엑세스 하고 있는지를 확인하는 인증 https://prde.tistory.com/109?category=959443 9. HTTP에 기능을 추가한 프로토콜 / 10. 웹 콘텐츠에서 사용하는 기술 http..