(1) 공통점
http 프로토콜을 이용하여 서버에 요청하는 경우 사용
(2) 차이점
전송방식
GET
: http request meassage의 header에 url 담아 서버로 전송
POST
: http request message의 body에 data 담아 서버로 전송
데이터 특성 (크기/보안)
GET
: 크기 제한적, 보안에 취약함
데이터를 url에 담기 때문 + 데이터가 url에 드러나기 때문
POST
: get보다 크기가 크고, 보안에 덜 취약함
데이터를 body에 담기 때문 + 데이터가 url로 드러나지 않기 때문
binary data 요청 시 post 방식으로 보내야함
용도
GET
: 데이터를 가져와서 보여주기 위함 (SELECT적)
POST
: 서버의 값 및 상태를 변경, 추가하기 위함
캐싱
GET
: 브라우저에 캐싱 가능
POST
: 보안이 중요하지 않고 크기가 작은 데이터이기 때문에 GET 대신 POST를 사용하는 경우, 기존의 캐싱된 데이터가 응답할 가능성 존재
SYN : client -> server
client : ISN 보냄
ISN : 새로운 TCP 연결 시 첫번째 패킷에 할당된 임의의 시퀀스 번호 (장치마다 다름)
SYN + ACK : server -> client
server : client의 ISN 수신, server의 ISN과 승인번호로 client의 ISN + 1 발신
ACK : client -> server
client : server의 ISN 수신, 승인번호로 server의 ISN + 1 발신
1. FIN : client -> server
client : 연결 닫고자 FIN 세그먼트 전송 후, fin_wait_1 상태되어, 서버의 응답 기다림
ACK : server -> client
server : ACK 세그먼트 전송 후, close_wait 상태됨
client : ACK 세그먼트 수신 후, fin_wait_2 상태됨
FIN : server -> client
server : 일정 시간 후, FIN 세그먼트 전송 후, last_ack 상태됨
ACK : client -> server
client : time_wait 상태되고, ACK 세그먼트 전송
server : ACK 세그먼트 수신 후, close 상태됨
time wait : client 일정 시간 대기 후 close됨 -> server와 client의 자원연결 해제됨
time wait 필요한 이유
UDP
TCP
HTTP
문제점 (1) : 평문 통신임으로 도청 가능
보안 방법
문제점 (2) : 통신 상대 확인 안 해 위장 가능
보안 방법
문제점 (3) : 완전성 증명 불가능해 변조 가능
중간자 공격 : 공격자가 도중에 req, res를 뺏어 변조하는 성격
보안 방법
HTTPS
문제점
Weighted round robin (WRR)
각각의 웹 서버에 가중치를 가미해서 분산 비율을 변경한다. 물론 가중치가 큰 서버일수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋다.
Least connection
접속 클라이언트 수가 가장 적은 서버를 선택한다. 로드밸런서에서 실시간으로 connection 수를 관리하거나 각 서버에서 주기적으로 알려주는 것이 필요하다.