1. 웹의 리소스에 접근하기 위해선,
프로토콜 :// 서버/패스 로 구성된다.
HTTP 는 하이퍼텍스트 트렌스포트 프로토콜이다.
리퀘스트와 리스폰스가 요청과 응답 메커니즘이다.
클라가 서버에 보냄으로서 트렌젝션이 시작된다.
각 요청은 URL을 포함하고, 스테이트리스니스( 어떤 정보도 유지 X )
메타데이터를 지원한다.
메시지 메타데이터 정보는 교환될 수 잇다.
요청에는 헤더와 바디로 구분되어있고, 호스트와 매스후드, 언어와 자료 형태가 기입되어있다.
서버의 답변에는 메시지 바디가 포함되어있지 않다. 리소스를 전송하지 않고 리소스 메타데이터를 얻을 수 있다. 또, 디버깅과 유효성 검사, 접근성 및 수정에도 유용하다.
POST는 신규, PUT은 수정이다.
트레이스 메소드는 디버깅 목적이다.
옵션 메소드는 통신 옵션에 대한 정보를 요청한다.
정보 전달 시의 리슐트 정보에는
1XX -> 아직 실행안됨
2XX -> 실행됨
3XX -> 실패, 다시 트라이해봐
4XX -> 실패, 클라이언트 문제 있음
5XX -> 실패, 서버의 실패
1.1버전 특징은,
1. 지속적인 연결 -> 1.0 버전엔 3핸드쉐이킹에서부터 잦은 연결과 끊김이 반복됨으로 이를 개선함
2. 파이프라이닝 -> 클라이언트가 답변을 기다리지 않고 여러 요청 보낼 수 있다. 그리고 서버는 동일한 순서로 연결된다. -> 큐 방식
3. 청크 인코딩 -> 발신자가 메시지를 임의의 크기의 청크로 나눌 수 있다. 동적으로 생성된 응답 메시지에 유용하다.
---------------------------------------------------------------
쿠키 방식 ->
HTTP 는 상태 비저장 프로토콜이다. 쿠키는 이를 클라에게 부담하여 상태 유지 관리를 한다. 쿠키는 일반 텍스트로 전송되고 문제가 있다.
첫번째 클라이언트 요청에서는 클라가 요청 -> 서버 답변 -> 헤더에 쿠키를 보낸다.
두번째는 클라이언트 요청이 쿠키를 포함한 요청을 보낸다. -> 서버가 답변을 보낸다.
클라이언트는 쿠키를 해석하지 않는다. 서버는 이전에 반환한 상태 정보를 제공받는다---------------------------------------------------------------
사용자 인증 방식 ->
사용자 정보는 브라우저에 자격 증명을 기억하고 후속 요청을 위해 헤더에 포함한다.
브라우저는 일반적으로 브라우저를 닫으면 자격 증명을 지운다.
첫번째. 클라는 일반 요청을 보낸다. -> 서버는 401 답변으로 인증 정보 없음을 보낸다.
->클라는 헤더에 인증을 포함한 정보를 보낸다. -> 일반적인 응답을 보낸다.
두번째. 일반적인 헤더에 인증 정보를 포함한 요청을 보내면, -> 일반적 답변을 보낸다
---------------------------------------------------------------
SSL -> 시큐어 웹 커뮤니케이션스 -> 보안 웹 통신
SSL 프로토콜은 응용 프로그램에서 독립적이다.
응용계층과 전송계층 사이에 동작한다.
HTTP와 같은 애플리케이션 프로토콜이 그 위에 있고, TCP/IP가 그 아래에 있습니다.
SSL 제공
SSL 작동방식
공개 키는 쌍으로 생성된 난수이다. -> 쌍의 다른 부분은 서버에만 알려진 개인 키이다. -> 공개 키로 암호화된 데이터는 개인키로만 복호화 가능
서버 공개 키를 사용하여 암호화할 수 있는 난수 또는 세션 키를 생성한다.
1. HTTPS 요청 -> 서버의 공개 키가 있는 SSL 인증서 응답
-> 서버 공개키로 암호화된 세션키 전송 ( 요청 ) -> 세션키로 암호화된 응답/요청
SSL 버전 호환성 보장 -> 암호화된 알고리즘에 따라 SSL 버전이 다르다. -> 브라우저가 지원하는 버전을 보냅니다.
-> 서버가 인증서를 보냅니다. 인증서에는 다음이 포함된다.
웹 서버가 속한 조직의 ID , 인증서의 만료날짜, 공개키, 인증 기관으로 알려진 인증서를 발급한 조직의 ID -> 브라우저는 잘 알려진 CA에서 발급한 인증서를 저장하고 인식
SSL이 하는 일
1. 데이터 암호화
2. 서버서버 인증
3. 메시지 무결성
4. 선택적 클라이언트 인증
하지 않는 일
1. SSL은 디스크에 저장된 데이터를 보호하지 않는다.
2. 브라우저에 캐시된 페이지를 통해 정보 도용
3. 브라우저 메모리에서 기밀 정보를 훔치는 것, SSL 에서는 데이터가 네트워크에 전송되는 동안 암호화되기 때문에 브라우저 메모리에 일반 텍스트로 저장된다.
------------------------------------------------------
HTTP는 대규모 분산 클라이언트/서버 정보 시스템이다.
클라이언트와 서버 간에 적절한 통신이 이루어지려면 HTTP, FTP, SMTP ,POP 등과 같은 응용 프로토콜에 동의해야한다.
HTTP ( 하이퍼텍스트 전송 프로토콜 )
- 비대칭 요청 - 응답 클라이언트 - 서버 프로토콜, HTTP 클라는 HTTP 서버에 요청 메시지를 보내고, 서버는 차례로 응답을 반환한다.
HTTP 는 상태 비저장 프로토콜이다. 즉, 현재 요청은 이전 요청에서 수행된 작업을 알지 못한다.
HTTP는 전송되는 데이터와 독립적으로 시스템을 구축 할 수 있도록 데이터 유형 및 협상 허용
서버에 매핑된 정보를 보낸다.
서버에 리턴한다. 응답 메시지를
URL -> 웹에서 리소스를 고유하게 식별하는 데 사용한다. url은 4가지로 나눌 수 있다.
1. 프로토콜 : 클라이언트와 서버에서 사용하는 응용 프로그램 수준 프로토콜
2. 호스트 명 : DNS 도메인 이름
3. 포트 : 서버가 클라이언트로부터 들어오는 요청을 수신하는 TCP 포트 번호
4. 페스 & 파일 네임 : 리소스의 이름과 위치
응답 메시지를 수신하고 메시지를 해석하고, 응답의 미디어 유형에 따라 브라우저 창에 메시지 내용을 표시한다.
유휴 상태에서 http 서버는 들어오는 요청에 대한 ip 주소와 포트를 수신대기하는것 외에는 아무 작업 수행 X , 요청이 도착하면 서버는 메시지 헤더를 분석한다. 웹 서버 동작에 대한 웹마스터 주요 제어는 구성을 통해 이루어진다.
TCP/IP를 통한 HTTP
일반적으로 아래와 같이 TCP/IP 연결을 통해 실행된다.
1. physical
2. data link
3. network
4. transport
5. session
6. presentation
7. application
1. IEE 802.11x ( data link )
2. ip (network )
3. tcp (transport )
4. ssl ( presentation )
5. application ( http )
ip 네트워크에서 각 시스템에서 고유한 ip 주소가 할당되고, ip 소프트웨어는 원본 ip에서 대상 ip 메시지를 라우팅하는 역할을 합니다. ( ipv4 ) , 쿼드 도트 방식이라고 하며 최대 4G 주소를 지원, DNS 는 도메인 이름을 ip 주소로 변환한다. 분산 조회 테이블을 통해 , 특수 ip 주소 127.0.0.1은 로칼
tcp는 tcp와 udp 가 존재한다. tcp는 신뢰 할 수 있고, 각 패킷에는 시퀀스 번호가 있다. 수신자가 패킷을 수신받지 않으면 패킷이 다시 전송된다. udp는 패킷 전달 보장하지 않으므로 신뢰할 수 없다.
1024 이상 포트는 사용자가 사용 할 수 있다.
HTTP 요청 해서에서는, 콘텐츠 타입이나 헤더를 알 수 있다.
'IT이론 > 기초' 카테고리의 다른 글
프록시란? (0) | 2022.04.05 |
---|---|
자료구조 정리 (0) | 2022.03.09 |
기타 이론 (sql 확장, 암호화, 쿠키, 웹서버) (0) | 2022.03.05 |
OSI 7계층, tcpip 4계층 (0) | 2022.03.05 |
레이드란? (0) | 2022.03.05 |
댓글