일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- pandas
- Dehaze
- DCP
- 의료 ai 대학원 월급
- 통계학
- 로스트아크
- C# 프로젝트
- 디자인패턴
- 영화 api
- 머신러닝
- 딥러닝
- 코딩테스트
- 경사하강법
- 자바 프로젝트
- 백준
- 활성화 함수
- API
- python
- 자바 영화 api
- MLP
- 대학원 월급
- 자바
- 파이썬
- 정규화
- 딥러닝 실험 깃 버전관리
- 디자인 패턴
- 파이썬 경사하강법
- 대학원 급여
- 인공지능
- 인공지능 깃 버전관리
- Today
- Total
대학원 일기
HTTP 프로토콜 본문
HTTP
💡 프로토콜 간의 개념/ 계층 간의 차이 HTTP 프로토콜 / Mail 프로토콜 / HTTPS 프로토콜 메시지 교환의 흐름
프로토콜
→ 컴퓨터 간에 정보를 주고받는 상황에서의 통신 방법에 대한 규칙과 약속
상호 간의 접속이나 전달 방식, 통신 방식, 주고받을 자료의 형식, 오류검출 방식, 코드변환 방식, 전송 속도 등에 대하여 정하는 것
- 2 계층 프로토콜 : Ethernet (CSMA/CD) / 데이터 형식 : 프레임
- 3 계층 프로토콜 : IP / 데이터 형식 : 패킷
- 4 계층 프로토콜 : TCP/UDP / 데이터 형식 : 세그먼트
- 응용 계층 프로토콜
- HTTP
- FTP
- Talnet
- SMTP
- POP
2,3,4 계층일 때는 이진 데이터로 정해진 프로토콜로 보냄
하지만, 7 계층은 사용자가 쓰는 용도기 때문에 사용자가 이해할 수 있는 걸로 바꿔야 함 헤더는 무조건 사용자가 아는 언어
근데 또 요즘 추세는 바뀌고 있음
2,3,4 계층은 컴퓨터가 이해하는 측면 ← 통신에서의 그거가 중요함. (ip주소, mac 주소)
7 계층은 내용이 더 중요함
234, 2진수로 (이미 표준화) 하는 역할 및 값 대입만 하면 됨 위는 32비트에 딱 맞춰서 해야 함. 7계층은 프로토콜 포맷에 관련된.. 예전과 현재의 차이점
2,3,4 2진수로 맞춰서 나왔고, 우리가 뭘 읽는지는 중요 x (해킹에 대한 위험 적고, 사용자도 적음) 그래서 ASCII코드로만 보내면 장떙이였음. 포맷이 싹 정해져 있음. 3 계층부터는 32비트 박스 형태
7 계층은 사용자가 이해할 수 있는 형태로 헤더를 바꿈 (데이터), 이 응요 계층도 결국 2진수로 가고 있음.. 2진수 형태는 내용을 모르면 모를 수 있고 , 이해하는데 시간이 오래 걸림
둘은 누가 이해해야 하는지에 대해 다를 수 있다. 컴퓨터 내부가 이해해야 하면 2진수로 작성함 (234 계층) 사용자(개발자)가 이해해야 한다면 헤더를 알아볼 수 있게!
2,3,4 계층은 통신에 관련된 것에 중심을 둔다면, 7 계층은 데이터에 중심을 둔다.
HTTP (Hyper Text Transfer Protocol)
→ TCP/IP 프로토콜 상에서 텍스트 형태의 메시지를 웹 서버와 클라이언트 사이에서 서로 주고받는 방식으로 동작
- 프레임 포맷 : TCP/IP
- 메시지 포맷
- 시작라인 - 요청과 응답
- 시작라인 - HTTP 헤더 - HTTP 바디
- 클라이언트/서버 통신
- 요청 : HTTP request
- 응답 : HTTP response
- HTTP 요청 메시지 포맷 : 요청라인 - 헤더 - 제어문자(CRLF) - 바디
요청메서드
응답 상태코드
- 추가적인 상태코드
- 200 → 성공
- 301 → 영구이동
- 304 → 수정한 게 없음, 헤더에 지정되어 있는 시각 이후에 수정된 경우만 제공
- 403 → 요청 거부 (권한 없음)
- 404 → Not Found
- 500 → 서버 에러
- 503 → 서버 정비 중, 처리 불가
HTTP 헤더
헤더
→ 헤더 필드명 + 값의 형태
한 줄에 하나씩, 한 줄 끝나면 줄 바꿈
헤더는 여러 개 가능
헤더가 끝나면 빈 줄 넣고 바디 시작
HTTP 동작 과정
- 요청
- 응답
- 종료
- → 요청 - 응답이 끝나면 TCP의 연결을 종료
캐시
- 그림 파일 요청에 대해 클라이언트 내부 캐시를 사용하라는 응답(use local copy 또는 Not Modified)을 서버로부터 받은 경우에 오가는 패킷의 동작을 보였다
HTTPS (Hyper Text Transfer Protocol Secure)
- TLS나 SLS(SSL)로 암호화(전송 계층 암호화): 공개키, 비밀키 기반 암호화
- 포트번호 : 443
- 속도 : HTTP 보다 느림
- 중간 변조 불가능, 네트워크 상에서 열람 및 수정 불가능
- 서버 측: 인증서 유지 비용 추가, HTTP보다 트래픽 발생
SSL & TLS
→ 서버와 클라이언트 간에 인증으로 RSA방식과 X.509를 사용하고 암호화된 정보 암호화 소켓 채널을 통해 전동
- 신분 확인, 암호화, 메세지의 무결성 보장
- 공개키 기반 인증서
- 절차
HTTP와 VPN
SMTP
- MailBox → 사용자의 들어오는 메일이 담기는 곳
- Message Queue → 보내질 메일이 들어가는 곳
- SMTP protocol → 메일 서버 사이에 메일을 보내기 위해 사용하는 프로토콜
- 예시
'School > Network Programming' 카테고리의 다른 글
C# Thread (0) | 2023.08.25 |
---|---|
소캣 (0) | 2023.08.25 |