HTTP(HyperText Transfer Protocol)
WWW 상에서 정보를 공유하는 프로토콜 - Port80 - HTML
WWW(World Wide Web)
HTML(HyperText Markup Language)
URL(Uniform Resource Locator)
웹 페이지를 찾기위한 주소
Client가 Server에게 특정 Method를 사용하여 요청
Head(+Start Line), Body로 구성
HTTP Method: 요청의 목적 - GET, POST, PUT, HEAD, DELETE
GET: 리소스 요청
POST: 내용 전송
PUT: 내용 갱신
HEAD: 리소스에 대한 정보만 요청
DELETE: 리소스 제거
Request target: 리소스 경로
HTTP version: HTTP1.1 or HTTP/2
Accept: 클라이언트가 허용 가능한 파일 형식
User-Agent: 클라이언트의 OS, 브라우저 정보
Host: 서버의 도메인 네임
Client 요청에 따른 Server의 응담
Head + Body
Version / Status / Status Message
Version: HTTP 버전
Status: 상태
Status Message: 상태 메시지
Date< Content-location, etag: 캐시 정보 업데이트
Last-modified: 요청한 데이터의 최종 수정일
Content-Length: 요청한 데이터 길이
주요 응답 코드
2** Success
200 OK
3** Redirection
307 Temporary Redirect
4** Client Error
400 Bad Request
401 Unauthorized
404 Not Found
5** Server Error
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
클라이언트 웹 브라우저 로컬에 저장되는 키와 값이 들어 있는 파일
이름, 값, 도메인, 만료일, 경로 - 일정 시간 정보 저장 -> 로그인, 장바구니
Session: 서버는 일정 시간 같은 웹브라우저의 요청이 들어오면 하나의 상태로 유지
서버는 클라이언트에 대한 세션ID 발급 및 보유 -> 쿠키로 전달 -> 동일 세션ID로 접속 -> 정보 확인
웹브라우저(크롬)에서 웹사이트 접속 후 F12클릭 - 메뉴 - Application - Cookie
Cookie는 사용자 로컬에 정보가 저장 - 유출 또는 조작 가능
Session은 서버에 정보를 저장(안전) - 인증에 세션을 사용 - 세션 하이재킹? - HTTPS - SSL/TLS
HTTP over TLS (http를 tls로 한번 감싼것)
https 랑 자물쇠.
인증 - Client to Server 통신 간 상태방에 대한 인증 - RSA, DSS라는 알고리즘
무결성 (회손되면 안되는) - 메시지 인증 코드로 제공 HMAC - MD5, SHA-2
기밀성 - 데이터 암호 - 3DES, RC4
상위
HandShake: 키 교환 방식, 암호화 방식, HAMC방식, 압축 방식 등을 협상
Change Cipher Spec: 협상 정보가 적용됨을 알림
Alert: 협상 과정에서 제시한 암호화 방식을 지원 못하는 경우 알림
하위 (알고리즘 협상하고 암호화 시켜서 보냄)
Record: 데이터 교환, 메시지를 전송
TLS 계층은 상위 3개 프로토콜, 하위 Record 프로토콜로 구분
상위 계층에서 협상 후 Record 프로토콜에서 Application 데이터를 분할, 압축, 암호화해서 전달
알고리즘 선정
전자 메일 전송을 위한 표준 프로토콜
ㄴTCP25 - FRC821, 2821에 며이되어 있음
클라이언트 - 서버 통신
HELO: 인사, 세션 초기화
MAIL: 메일 전송 시작, 송신자 이름
RCPT: 수신자, 수신자 이름
DATA: 데이터 전송 시작
QUIT: 세션 종료
220 세션 준비
221 세션 종료
250 요청한 명령이 정상적으로 수행
421 서비스 불가
450 다른 프로세스에 의해 접근 불가
500 명령이 잘못됨
551 잘못된 사용자 요청
수신서버의 메일 박스에서 메일을 가져오고 삭제하는 프로토콜
ㄴTCP110 - FRC1939, 2449
아웃룩 같은 메일 클라이언트 프로그램에서 사용
USER: 사용자 ID
PASS: 사용자 Password
STAT: 서버 상태
LIST: 메시지 리스트와 크기 확인
DELE: 메시지 삭제
QUIT: 연결 종료
+OK: 정상
-ERR: 에러
메일서버로 접속하여 메일을 읽거나 삭제하는 프로토콜
ㄴTCP143 = FRC3501
IMAP4는 원하는 메일 메시지만 전송, 다중 접속 가능, 메일 보관함 연동
메일 서버의 자원 사용률이 높아짐
LOGIN: 사용자 접속
SLECT INBOX: 메일 박스 선택
FETCHl: 리스브 보기
UID FETCH: 메시지 가져오기
STATUS: 메일 박스의 상태 정보 확인
메일 서버, 메일 클라이언트
메일 서버: MTA(Mail Transfer Agent): 메일 전송
메일 클라이언트: MTI(Mail User Agent): 메일 송수신 프로그램
MDA(Mail Delivery Agent): MTA가 수신한 메일을 수신자 우편함에 기록
MRA(Mail REtrieval Agent): 리모트 서버의 우편함에서 사용자에게 메일을 가져오는 프로그램
A: MUA에서 SMTP를 통해서 메일 송신 - MTA - MDA (큐에 저장하고 순서대로 전송)
B: MTA에서 메일 수신 - MDA - 지정된 메일박스로 전달 - MRA(POP3 or IMAP4)가 mail-box에서 메일 찾아옴 - MUA