티스토리 뷰

Backend/꾸준히 TIL

[IT 개념] HTTP 통신

개발하는 후딘 2023. 3. 16. 23:26
728x90
반응형

GET 방식과 POST 방식의 차이점?

GET방식

GET 방식은 서버에서 어떤 데이터를 가져와서 보여줄 때 사용한다.

어떤값이나 내용, 상태등을 바꾸지 않는 경우이다.

즉, 클라이언트에서 서버로 어떠한 리소스로부터 정보를 요청하기 위해 사용되는 메소드이다.

GET 방식은 데이터를 읽거나, 검색할 때 사용된다.

 

 

POST 방식

서버상의 데이터 값이나 상태를 바꾸기 위해서 사용된다.

리소스를 생성/업데이트 하기 위해 서버에 데이터를 보내는데 사용된다.

HTTP 의 Body에 담아서 전송한다. Body는 길이 제한 없이 데이터를 전송할 수 있다.

POST 요청은 캐시가 되지 않으며, 브라우저 기록에 남지 않고, 북마크에 추가할 수 없다.

POST 요청에 대한 자원생성은 201(Created) HTTP 응답 코드로 반환한다.

 

  • 생성요청시 POST 메소드를 사용한다.
  • 수정요청시 PUT 또는 PATCH 메소드를 사용한다.
  • 삭제요청시  DELETE 메소드를 사용한다.

 

[참고]

 

Get과 Post의 차이를 아시나요?

주의!⚠️ 본글에서는 독자들이 HTTP method가 무엇인지 안다는 전제 하에 이야기를 진행합니다. Get과 Post는 Http method 중 가장 많이 쓰이는 method가 아닐까 싶습니다. 하지만 이 글을 읽는 당신은 둘

whales.tistory.com


Query String vs Param vs Body

 param, query, body 는 Request 객체가 API를 컨트롤 할 수 있도록하는 메소드이다.

 

Query String (request.query)

  • Query Parameter
  • 특정값을 필터링을 한다.
  • 정렬이나 필터링을 해야하는 상황일 때 쓰인다.

 

GET방식으로 요청할 때, URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링이라고 부른다.

예) https://www.google.com/search?q=docker&oq=docker&aqs=chrome.0.69i59l2j69i61l3j69i60l3.975j0j1&sourceid=chrome&ie=UTF-8

? 이후에  url에 변수와 값이 드러나있다.

&를 연결하여 여러개의 데이터를 담아서 필터링을 할 수 있다.

 

 

Param (request.param)

  • Path Variable
  • 리소스를 식별해야하는 상황일 때 쓰인다.
  • 예를 들면 [GET] /post/:pid 으로 설정하고, 요청할 때는 /post/123 으로 하면
    • 파라미터 pid에 값 123이 저장된다.

 

Body (request.body)

  • XML, JSON, Multi Form 에 데이터를 담는다.
  • url 주소로 확인이 어렵다. (그치만 개발자도구에서 요청내용을 확인할 수 있다.)
  • 민감한 데이터의 경우 반드시 암호화해서 전송해야한다.
  • 직렬화된 이진데이터와 같이 사람이 읽을 수 없는 경우.
  • url 길이 제한이 있어서, 요청할 때 변수가 많거나, 변수에 대응되는 값이 너무 길때 사용된다.

 

 

[참고]

 

Query String 과 Path Variable 비교 및 활용

Query String, 쿼리 스트링 활용하기 '건대'라는 글자가 들어가는 특정 카페를 찾기 위해선 어떻게 해야 할까요? 아래와 같이 쿼리스트링을 활용하면 됩니다. cafeRoute.js cafecontroller.js 사용자가 쿼리

yusang.tistory.com

 

[Web] param vs query vs body

개념 Request 객체는 API를 컨트롤하기 위한 메소드로 아래 세가지를 담고 있다. param query body req.param 주소에 포함된 변수를 담는다. 예를 들어 https://naver.com/post/12345 라는 주소가 있다면 12345를 담는

dar0m.tistory.com


REST와 RESTful API

REST (Representational State Transfer)  은

자원을 이름으로 구분하여 자원의 상태나 자원의 정보를 주고받는 것을 의미한다.

자원의 표현에 의한 상태 전달 이다.

 

  • 자원: 자원은 소프트웨어가 관리하는 모든 것이기도하다. (문서, 그림, 데이터, 파일, 소프트웨어 자체 등)
  • 자원의 표현: 자원을 명시하기 위한 이름
  • 상태(정보)전달: 데이터가 요청되어지는 시점에서 자원의 상태(정

 

REST 가 왜 필요할까?

  • 애플리케이션 분리/통합
  • 다양한 클라이언트의 등장
  • 서버프로그램은 다양한 브라우저와 모바일 환경에서도 통신을 할 수 있어야하며, 멀티플랫폼에 대한 지원을 위해 서비스 자원할 수 있어야한다.

 

REST의 구성요소

  • 자원: URI
    • 모든 자원에는 고유한 ID가 존재하고, 서버에 자원이 존재한다.
    • HTTP URI 는 자원의 고유한 아이디를 의미한다면
    • HTTP URL은 자원의 위치를 표기한 것이다.
    • 클라이언트는 URI를 이용하여 자원을 지정하고, 해당 자원의 상태(정보)에 대한 조작을 서버에 요청한다.
  • 행위: HTTP Method
    • HTTP 프로토콜은 GET/POST/PUT/PATCH/DELETE 와 같은 메소들르 사용한다.
  • 표현
    • 클라이언트가 자원의 상태(정보)에 대한 조작을 요청하면, 서버는 이에 대한 응답을 보낸다.
    • REST에서 하나의 자원은 JSON, XML 등 여러형태로 나타내며, 이 표현으로 데이터를 주고받는다.

 

REST API

  • REST 기반으로 서비스 API를 구현한 것.
  • 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 한다.
  • HTTP 표준을 기반으로 구현하므로 HTTP를 지원하는 프로그램 언어로 클라이언트와 서버를 구현할 수 있다.

 

[참고]

 

생물정보 전문위키, 인코덤

Wikipedia for Bioinformatics

www.incodom.kr

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io


 

 

GitHub - loveAlakazam/coding-interview: 취업 준비를 위해 공부한 내용을 정리하는 레포

취업 준비를 위해 공부한 내용을 정리하는 레포. Contribute to loveAlakazam/coding-interview development by creating an account on GitHub.

github.com

 

GitHub - JaeYeopHan/Interview_Question_for_Beginner: Technical-Interview guidelines written for those who started studying progr

:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - GitHub - JaeYeopHan/Interview_Question_for_Beginner: Techn...

github.com

 

 

👨🏻‍💻 Tech Interview

최종 수정 : 12/17/2022, 7:23:59 AM

gyoogle.dev

 

728x90
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함