Java Spring Boot 002-1 | 컴퓨터 통신과 HTTP

Yunny.Log ·2022년 2월 9일
0

Spring Boot

목록 보기
10/80
post-thumbnail

1. HTTP는 무엇인가

이미지출처

  • 응용계층의 프로토콜 => HTTP, SMTP, FTP : 주고받을 데이터를 어떤 규칙을 가지고 작성하느냐의 문제

  • HTTP : HyperText transfer protocol (정보를 담고 있는 텍스트 통신 규약)

    • 응용 계층에 정의된 통신 규약
    • 서버와 클라이언트 간에 메시지를 전달하는 형식을 정의한 규약
  • REST : REpersentational State Transfer

    • API 를 설계하는 데 있어서 존재하는 규칙

2. HTTP 요청 / 응답의 형식

1) 요청

이미지출처

1) Request Line : 메소드, Path, Version
2) Request Headers : HTTP 요청에 대한 부수적인 데이터(요청한 형식, 길이, 어디로 요청을 했는지)
3) Request Body : HTTP 요청에 관한 실제 데이터

2) 응답

이미지출처
1) Status Line : 요청 처리에 대한 상태 표시줄
2) Response Headers : HTTP 응답에 대한 부수적인 데이터
3) Request Body : 응답에 대한 데이터

url - 자원의 위치 알리는 문자열

이미지출처

  • Uniform Resource Locator : 인터넷 상에 자원의 위치를 나타내는 문자열
  • path 까지가 인터넷 상의 컴퓨터를 나타내는 부분
  • path 뒤부터는 컴퓨터 안의 위치(경로)

3. Media Types

  • 인터넷 상에서 주고받는 데이터의 형식
    (ex)
    - image,jpeg
    - video, mp4
  • Content Type : HTTP 의 응답데이터(Body)의 Media Type을 알려주는 헤더
    이미지,설명 출처
    https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types

    => application/json , multipart/form-data 가 자주 사용될 것

JSON (Javascript Object Notation)

  • 데이터를 주고받을 때 흔히 사용하는 형태
  • 속성(Attribute) - 값(Value) 형태와 배열을 활용

https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON

{
  "squadName": "Super hero squad",
  "homeTown": "Metro City",
  "formed": 2016,
  "secretBase": "Super tower",
  "active": true,
  "members": [
    {
      "name": "Molecule Man",
      "age": 29,
      "secretIdentity": "Dan Jukes",
      "powers": [
        "Radiation resistance",
        "Turning tiny",
        "Radiation blast"
      ]
    },
    {
      "name": "Madame Uppercut",
      "age": 39,
      "secretIdentity": "Jane Wilson",
      "powers": [
        "Million tonne punch",
        "Damage resistance",
        "Superhuman reflexes"
      ]
    },
    {
      "name": "Eternal Flame",
      "age": 1000000,
      "secretIdentity": "Unknown",
      "powers": [
        "Immortality",
        "Heat Immunity",
        "Inferno",
        "Teleportation",
        "Interdimensional travel"
      ]
    }
  ]
}

위와 같은 형식

=> 일반적 데이터를 표현한 객체는 json 형태로 주고받는다

  • 중괄호, 키, 값, 배열 을 조합해서 사용

0개의 댓글