60 # http의 기본 개념

HTTP란 무엇입니까?

공통 네트워크는 TCP/IP프로토콜 제품군을 기반으로 작동하며 HTTP는 하위 집합입니다. http는 tcp 프로토콜을 기반으로 하여 헤더인 tcp를 기반으로 일부 사양이 추가되는데, http를 학습한다는 것은 각각의 헤더가 무엇을 하는지 배우는 것입니다.

TCP/IP 프로토콜 제품군

간단히 말해서 프로토콜은 통신 규칙입니다. 예를 들어 통신 중에 요청을 시작하는 사람, 요청을 종료하는 방법, 통신하는 방법 등이 있습니다. 집합적으로 인터넷 관련 프로토콜이라고 합니다 TCP/IP.

프로토콜 레이어링

OSI(Open System Interconnection Open System Interconnection Reference Model)는 네트워크 상호 연결을 위한 7계층 모델을 정의합니다.

  • 물리적 계층: 통신 장치와 네트워크 미디어 간의 상호 연결을 관리합니다.
  • 데이터 링크 계층: 미디어 액세스 및 링크 관리를 제공합니다.
  • 네트워크 계층: IP 주소 선택 및 라우팅.
  • 전송 계층: 데이터 통신.
  • 세션 계층: 세션을 생성, 관리 및 유지합니다.
  • 프리젠테이션 계층: 데이터 인코딩, 형식 변환 및 데이터 암호화.
  • 애플리케이션 계층: 애플리케이션 또는 사용자 요청에 대한 다양한 요청 서비스를 제공합니다.

아래 그림과 같이:

구현 시 일반적으로 4개의 계층으로 계층화됩니다.

  • 링크 계층(사물, 숫자): 네트워크 연결의 하드웨어 부분
  • 네트워크 계층: IP는 전송 경로를 선택합니다(ip 주소 및 mac 주소를 통해)(mac 주소와 통신하기 위해 ARP 프로토콜 사용).
  • 전송 계층: TCP 프로토콜(신뢰), UDP 프로토콜, 데이터 전송(HTTP -> TCP, DNS -> UDP)
  • 응용 계층(미팅, 테이블, 응답): HTTP, FTP, DNS(다른 컴퓨터와 통신하는 응용 서비스, 사용자에게 응용 서비스를 제공할 때 통신 활동)

액세스 페이지 프로세스 TCP/IP통신 프로토콜:

  • DNS 프로토콜을 통해 도메인 이름을 확인하여 해당 IP 주소를 얻습니다.
  • HTTP 프로토콜을 통해 데이터를 전송하고 대상 웹 서버에 대한 HTTP 요청 메시지 생성
  • 통신을 용이하게 하기 위해 HTTP 요청 메시지는 TCP 프로토콜을 통해 메시지 세그먼트로 분할되고 일련 번호에 따라 여러 개의 메시지 세그먼트로 분할되며 각 메시지 세그먼트는 상대방에게 안정적으로 전송됩니다.
  • IP 프로토콜을 통해 상대방의 주소를 검색하여 전송하면서 전송
  • TCP 프로토콜을 통해 상대방으로부터 받은 메시지 세그먼트는 도착한 메시지 세그먼트를 재조립한 후 시퀀스 번호에 따라 요청 메시지를 원래의 순서대로 재조립
  • HTTP 프로토콜을 통한 웹 서버 요청의 콘텐츠 처리

HTTP 기능

서버를 생성하려면 특정 IP 주소, 포트 번호, 클라이언트에서 서버로 보내는 요청 객체, 서버에서 클라이언트로 보내는 응답 객체가 있어야 합니다.

  1. 기본 상태 비저장: http는 상태를 저장하지 않는 프로토콜이며 쿠키를 사용하여 상태를 관리할 수 있습니다.
  2. http(1.1) keep-alive 사용: 연결이 끊기지 않고 링크가 유지되어 각 요청으로 인한 tcp 링크의 불필요한 설정 및 연결 끊김을 방지합니다.
  3. 기본 파이프라인: 이전에는 요청을 보낸 후 응답을 기다려야 다음 요청을 보낼 수 있었지만 지금은 모두 파이프라인으로 연결되어 동시 요청이 가능합니다.

HTTP 단점

  • 명확한 텍스트로 커뮤니케이션
  • 통신 당사자의 신원을 확인하지 마십시오.
  • 콘텐츠의 무결성을 확인할 수 없음(콘텐츠가 변조되었을 수 있음)(https로 처리 가능)

HTTP 방식

요청 방법:

  • GET: URL을 통해 데이터 전달
  • POST: 본문 전송 데이터 요청

도구

  • 우편 배달부: (시각적 요청 도구)
  • curl: git을 설치해야 합니다(명령줄).

RESTFUL 스타일: 사양이 아니라 다양한 요청 방법에 따라 서버 리소스의 작동을 실현하는 것입니다.

  • 가져오기: 데이터 요청
  • 게시물: 데이터 증가
  • 삭제: 데이터 삭제
  • 넣어: 데이터 수정
  • 옵션: 실행 전 요청(기본적으로 도메인 간에 옵션 요청을 보낼 수 있음)

단순 요청: get 및 post는 단순 요청입니다.

복합 요청: 가져오기 및 게시에 사용자 지정 헤더를 추가하면 복합 요청이 됩니다. 다른 모든 방법은 복잡한 요청입니다. 복잡한 요청이 전송되면 기본적으로 옵션 요청이 먼저 전송됩니다.

교차 도메인: 프로토콜, 도메인 이름 및 포트 번호가 동일하지 않으면 교차 도메인입니다.

도메인 간 문제를 해결하는 일반적인 방법:

  • cors(서버가 교차 도메인을 확인하고 교차 도메인 헤더를 추가함)
  • jsonp
  • nginx(리버스 프록시)
  • 웹소켓

도메인 간 문제를 해결하는 일반적이지 않은 방법:

  • 아이프레임
  • 포스트메시지
  • 창.이름
  • 문서.도메인
  • 위치.해시

HTTP 상태 코드

  • 101: 웹소켓
  • 2xx
    • 200: 성공
    • 204: 성공했지만 응답 본문이 없음
    • 206: 중단점 재개(데이터의 일부 반환)curl -v --header Range:bytes=0-1024 www.baidu.com
  • 3xx
    • 301: 영구 리디렉션
    • 302: 임시 리디렉션
    • 304: 서버 캐시
    • 307: 리디렉션(POST를 GET으로 변환하지 않음)
  • 4xx
    • 400: 클라이언트 매개변수가 올바르지 않습니다.
    • 401: 권한 없음, 로그인 없음
    • 403: 권한 없음, 권한 없이 로그인
    • 404 찾을 수 없음
    • 405: 서버가 이 방법을 지원하지 않습니다. 허용되지 않는 방법입니다.
  • 5xx
    • 500: 서버 문제
    • 502: 로드 밸런싱에 문제가 있습니다.
    • 503: 서버에서 오류를 보고합니다.

메시지

요청한 메시지

  • 요청 라인: 요청 방법, 요청 경로(해시 제외), http 버전 번호(매개 변수 전달 가능) 포함
  • 요청 헤더: 데이터, 사용자 지정 헤더를 전달할 수도 있습니다.
  • 요청 본문: 데이터를 넣을 수 있고, 데이터 바이너리를 전송할 수 있습니다...

응답 메시지

  • 응답 라인: http 버전, 상태 코드, 응답 문구
  • 응답 헤더: 사용자 정의 응답 정보
  • 응답 본문: 브라우저에 반환되는 콘텐츠

Supongo que te gusta

Origin blog.csdn.net/kaimo313/article/details/131971064
Recomendado
Clasificación