대학원 일기

HTTP 프로토콜 본문

School/Network Programming

HTTP 프로토콜

대학원생(노예) 2023. 4. 19. 20:52

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
Comments