HTTP란

2022. 3. 12. 15:04·공부/네트워크

HTTP란?

HTTP란 클라이언트와 서버 간에 주고 받는 메세지의 형식을 정해 놓은 약속과 같은 것이다. TCP/IP계층의 애플리케이션계층에 해당하며 웹브라우저와 서버 간에 통신하는 프로토콜로 사용된다.

 

동작 방식

  1. Client -> Server
    요청정보 전송 - 무엇을(URI) / 어떻게(Method) 해줘
  2. Server
    요청정보 분석 후 그에 해당하는 행동 실행
  3. Server -> Client
    응답정보 전송 ->행동 결과에 대한 상태코드 전달 (Status Code)
  4. 행동에 대한 결과 데이터 전달
  5. Client
    응답 결과에 대한 행동 ex)응답으로 받은 데이터 표시.

 

클라이언트가 서버로 요청을 보내는 방법

  • 도메인창에 URL입력
  • 웹페이지 안에 포함된 하이퍼링크 클릭
  • 데이터 기입 후 특정 버튼('송신'버튼) 클릭
  • 등등,,

 

요청 정보 형식

<Method(요청 방식)> <공백> <URI> <공백> <HTTP 버전>
<필드명> : <필드값>
ex) name : content

<공백> - 이 공백 행까지 Header
---------------------------------------------------
클라이언트에서 서버에 송신하는 데이터(POST 요청 시 사용)
  • Method (요청 방식)
    • GET : 이 정보 줘!
      • 가장 단순한 요청 방식이다.
      • 웹 서버로부터 데이터를 읽어올 때 사용한다.
      • URI 뒤에 '?' 기호를 기준으로 문자열을 추가하여 전달이 가능하다.
      • 이 때 보내는 문자열 정보는 웹 브라우저에 노출된다.
      • 헤더에 포함되는 정보로 문자열 크기에 제한이 있다.
    • POST : 이 정보 저장하고싶어!
      • HTTP요청 정보에 Body가 포함되어 전달된다.
      • 요청 시 보내는 데이터가 노출되지 않는다.
      • 전송 데이터 크기에 제한이 없다.
      • 클라이언트는 정보를 인코딩하고 서버는 그 정보를 디코딩 해야하므로 GET보다는 처리 속도가 느리다.
    • PUT : 너가 가지고 있는 이 정보 수정하고 싶어!
      • 서버의 정보(리소스)를 수정 할 때 사용된다.
    • DELETE : 너가 가지고 있는 이 정보 삭제하고싶어!
      • 서버의 정보(리소스)를 삭제 할 때 사용된다.
      • GET과 같이 URI로 대상 정보를 전송한다.
    • OPTIONS
      • 요청 URI에 대하여 허용되는 통신 옵션을 알고자 할 때 사용
    • HEAD
      • GET 방식과 거의 동일하다.
      • Body 없이 Header만 요청한다.
      • 해당 자원의 존재 여부 혹은 서버의 문제 여부를 확인하기 위해 사용된다.
    • TRACE
      • 웹클라이언트의 요청을 그대로 반환하는 방식이다.
      • 요청 정보가 웹 서버에 도달하기까지의 경로를 기록한다.
      • 서버 상태를 확인하기 위한 목적으로 사용된다.
    • CONNECT
      암호화 된 메세지를 프록시로 전송할 때 이용하는 메소드
  • 요청 URI
http://user:password@www.cyber.co.kr:80/dir/file.html
프로토콜://사용자명:비밀번호@서버주소/파일경로명
  • 프로토콜
    서버와 통신하기 위한 약속으로 서버마다 사용하는 프로토콜이 정해져있다.
  • 서버 주소
    서버가 동작하고 있는 컴퓨터를 찾아가기 위한 IP주소 혹은 도메인 이름을 작성한다.
  • 포트 번호
    • 서버주소로 컴퓨터를 찾아갔으니 서버로 접속하기 위한 정보
    • 0~65,535번까지 사용 가능
    • 0~1,023까지 well-known port로 이미 정의되어 있음
      ex) 80 - 웹서버 / 22 - ssh
  • URI (Uniform Resource Identifier)
    서버에서 서비스하는 자원 정보
  • Header

 

응답 정보 형식

<HTTP 버전> <공백> <Status Code> <공백> <응답 문구(응답 코드의 내용을 의미하는 짧은 문구)>
<필드명> : <필드값>
ex) name : content

<공백> - 이 공백 행까지 Header
---------------------------------------------------
서버에서 클라이언트로 송신하는 데이터
바이너리 데이터로 취급된다.
  • Status Code(상태코드)
    • 1xx : 조건부 응답 - 처리 경과, 상황 등을 통지
    • 2xx : 정상 종료
      • 200 OK
    • 3xx : 리다이레션 완료 - 클라이언트 측에서 다른 조치가 더 필요하다.
      • 302 Redirection
    • 4xx : 요청 오류 - 클라이언트 측의 오류
      • 400 Bad Request
      • 401 Unauthorized
      • 403 Forbidden
      • 404 Not Found
      • 405 Method Not Allowed
    • 5xx : 서버 오류 - 서버측의 오류
      • 500 Internal Server Error
  • Header

'공부 > 네트워크' 카테고리의 다른 글

[NETWORK] WebSocket에 대해 알아보자.  (0) 2022.07.13
'공부/네트워크' 카테고리의 다른 글
  • [NETWORK] WebSocket에 대해 알아보자.
hwa2
hwa2
  • hwa2
    나도! 기억하고싶었어!
    hwa2
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • 공부 (4)
        • 네트워크 (2)
        • 알고리즘 (2)
        • 자료구조 (0)
      • 디자인패턴 (1)
      • DevOps (1)
        • 데이터베이스 (1)
      • BackEnd (11)
        • JAVA (7)
        • Spring (4)
      • FrontEnd (6)
        • Javascript (6)
      • 코딩테스트 풀어보자! (1)
      • 해결해보자. (1)
      • 플젝..해보자.. (2)
      • 우테코 7기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    우테코
    jdk8
    Java
    회고
    우테코7기
    싱글톤패턴
    자바스크립트
    TemplateMethodPattern
    JS
    FunctionalInterface
    nodejs
    node.js
    함수형인터페이스
    싱글톤컨테이너
    우테코 7기
    프리코스
    JavaScript
    readline
    멋쟁이사자처럼후기
    스레드 동기화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hwa2
HTTP란
상단으로

티스토리툴바