<목록>
1. Web 과 HTTP
2. HTTP개요
3. 응답시간
4. HTTP연결
1) 비 지속연결(nonpersistent)
2) 지속연결(persistent)
3) 연결 제어 방식
5. Client의 HTTP 요청 message
1) Post method
2) URL method
6. Server의 HTTP 응답 message
7. 쿠키
1) 쿠키의 구성요소
2) 쿠키 생성 순서
8. web cache ( proxy server)
1. Web 과 HTTP
Web page는 여러 object로 구성된다. 각각 다른 URL이라는 주소를 가지기 때문에 object라고 한다.URL은 호스트명과 파일이름을 포함한 경로명으로 구성된다.
Http는 Hyper text transfer protocol을 의미한다. 이때 사용하는 언어는 Server side language와 Client side language로 나눠진다.
server side language |
client side language |
특징 |
|
java |
0 |
0 |
클라이언트 프로그램에서 구동된다. |
php |
0 |
x |
서버를 통해 구동하기 때문에 서버없이 실행이 되지 않는다. |
Client에서 browser는 웹용 clien app을 통해 URL을 이용한 모든 object를 요청한다. 이것을 request라고 한다.
Server는 web server로 client의 질의에 응답하고 여러 web object를 client에 전송한다.
2. HTTP개요
1) TCP를 사용한다. 그렇기 때문에 Data loss를 허용하지 않는다. 또한 Socket을 통해 Message를 주고 받는다.
2) HTTP는 상태 정보를 저장하지 않는다. 따라서 세션이 유지 되지 않고 로그인을 지속적으로 수행하는 것이다.
3. 응답시간
RTT는 작은 packet이 client로 부터 server로 갔다가 다시 server로 돌아오는 데 걸리는 시간으로 nonpersistent에서는 전체 전송 시간은 2RTT+파일변환시간이다.
4. HTTP연결
1) 비 지속연결(nonpersistent) : 각각 object마다 하나의 TCP connection을 이용한다. 따라서 object 송신마다 연결을 계속 해야 한다
1-1 Client는 server에 TCP connection을 시도한다.
1-2 Server는 Clinet에 TCP connection을 허용한다.
2. Client는 requset message를 connection Socket을 통해 server에 전달한다. 파일을 요청하는 것이다.
// 여기까지가 3-hand-shake이다.3. Server는 요청한 object를 포함한 response message를 client에 전송한다.
4. server는 TCP에 접속을 끊도록 한다. 하지만 client가 패킷 response를 받을 때 까지는 접속을 유지한다.
5. client가 response 수신하고 message를 처리한후 TCP connection을 끊는다.
6. 모든 object에 대해 위의 과정을 반복한다.
2) 지속연결(persistent) : 하나의 TCP connection을 이용해 여러 object를 전송한다.
nonpersistent의 문제점은 각 object당 2RTT가 필요하다.브라우저는 동시에 여러개의 TCP connection을 연결하여 여러 object를 처리한다. 이를 보완하기위해 동일한 client/server의 요청혹은 응답 message는 같은 connection을 이용한다.
- persistetne without pipelining : Client는 response를 수신한후 새로운 request를 보낸다. 객체 수신에 1RTT만 사용한다.
- persistetne with pipelining : Client의 응답에 상관없이 Reference object를 만나자 마자 계속해서 requset를 발생한다. 응답이 필요없기 때문에 모든 objcet에 대해 하나의 RTT만을 더 필요로 한다.
3) 연결 제어 방식은 한번에 송신이 가능한 패킷을 정하는 윈도우 사이즈를 통해서 제어가 가능하다. 송신측에서 제어하는 것은 혼잡제어, 수신측에서 제어하는 것은 흐름제어라고한다.
5. Client의 HTTP 요청 message
request message는 ASCII를 이용해 만들어 읽을 수 있다.
두가지 방식을 통해 요청값이 전송된다.
1) Post method
web page의 특정 내용은 form field 입력에 의존한다. form field는 post방식과 get방식으로 입력된다.
2) URL method
get method방식을 의미하며 입력된 form field값들은 request line의 URL field를 이용해서 전송하며 변환에 대해 항상 일정하다.
6. Server의 HTTP 응답 message
전체 구성 문장을 symetics라고 하며 각 라인을 syntex라고 한다.
7. 쿠키
로그인정보는 쿠키 혹은 세션을 통해 저장 혹은 유지되어 사용한다.
1) 쿠키의 구성요소
- HTTP 쿠키 헤더가 포함된 request/response message
- 사용자 browser쪽에 저장된 쿠키 파일
- website의 back-end database
2)쿠키 생성 순서
1. PC를 이용해 Internet에 접속한다.
2. 특정 사이트에 접속한다.
3. 웹사이트에 처음으로 requset가 들어오면 웹 사이트는 식별가능한 unique ID를 만들고 back-end database의 순서에 맞게 ID를 저장한다.
8. web cache ( proxy server)
cache를 사용하는 이유는 client의 request에 대한 응답시간을 줄이고 서비스제공자의 content를 빠르게 분배가 가능해진다. cache는 client와 server기능을 모두 하고 일반적으로 ISP가 구입하고 설치한다.
방화벽 or 라우터가 institutional cache를 통해 인터넷에 연결되도록 경로를 설정해 주어야 한다. institutional cache를 APP방화벽 또는 고수준 방화벽이라고 한다. 여기서 고수준은 Application layer에서 구동한다는 의미이다.
<보안 우회>
빨간 화살표 : 외부 proxy를 이용해 방화벽을 우회하여 보안을 우회할 수 있다.
보라 화살표 : 다른 OS를 proxy로 이용해 방화벽을 우회하여 보안을 우회할 수 있다.
'교육 > Netwrok' 카테고리의 다른 글
Day 55 (NAT 네트워크 구성) (0) | 2020.02.06 |
---|---|
Day 55 (네트워크) (0) | 2020.02.06 |
Day 53 (Network) (0) | 2020.02.04 |
Day 52 (네트워크) (0) | 2020.02.03 |
Day 51 (네트워크) (0) | 2020.01.31 |