-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CS] HTTP, HTTPS, Socket #5
Labels
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Socket
서버와 클라이언트 양방향 연결이 이루어지는 방식
양방향으로 연결되기 때문에, 서버가 클라이언트의 요청이 없어도 데이터를 전달할 수 있음
계속 Connection을 유지하기 때문에, http 통신보다 상대적으로 리소스 부하가 높다
실시간 스트리밍, 채팅과 같은 서비스에서 사용
HTTP
HTTP 통신의 특징
단방향 통신
클라이언트 요청이 있을 때만 응답하는 방식
서버가 클라이언트에게 먼저 정보를 주지 못함
HTTP를 통해 서버의 새로운 데이터를 받기 위해서는 클라이언트의 요청이 필요
클라이언트의 요청이 없다면 서버의 데이터를 받아올 수 없음
필요한 경우에만 요청하기 때문에, 항상 연결이 되어 있는 소켓에 비해 부하가 적음
HTTP 메시지 구조
1. 라인
메시지의 가장 기본 내용인 응답/요청 여부, 메시지 전송 방식, 상태 등이 작성됨
매우 정형화되어 있어, 무조건 한 줄로만 작성됨
2. 헤더
메시지 본문에 대한 메타 정보가 들어가는 부분
필요한 만큼 여러 줄로 작성됨
길이가 유동적, 바디와 구분을 짓기 위해 한 줄의 공백이 삽입됨
3. 바디
실제로 보내고자 하는 메시지 본문 내용이 들어가는 부분
길이가 유동적임
HTTPS
HTTPS 통신의 특징
TCP(전송계층)와 http(응용계층) 사이에 작용하여, 데이터를 암호화하여 전송
서버와 암호화 과정을 거쳐야 하기 때문에 사실상 도메인 부분은 노출이 됨
즉, URL을 확인해야 하기 때문에, URL은 암호화 되지 않고 노출됨
그 외에 쿼리스트링, 파라미터 (HTTP body) 등은 암호화 되어 전송
https와 달리 http 통신의 경우, 네트워크 패킷 프로그램을 통해서 통신 과정의 값을 확인하거나 위변조 할 수 있는 위험이 있음
The text was updated successfully, but these errors were encountered: