네트워크

수민·2023년 1월 6일
0

code1

목록 보기
1/4

파일-> FTP

FTP는 TCP/IP 네트워크(인터넷)상의 장치가 파일을 전송할 때 사용하는 규칙입니다. 인터넷을 사용할 때 우리는 다양한 프로토콜을 사용합니다. 인터넷을 둘러볼 때는 HTTP를 사용하고, 인스턴트 메시지를 주고받을 때는 XMPP를 사용하죠.

간단한 메일->SMTP

텍스트-> HTTP(하이퍼텍스트)

HTTP란?
HyperText(링크) Transfer Protocol 의 약자이다.

하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 Protocol (통신 규약)인데, 쉽게 생각하면 웹 상에서 통신을 할 때 어떤 형식으로 통신을 하자고 정해놓은 약속이다.
HTTP는 TCP / IP 기반

프론트엔드 서버 ←→ 클라이언트 간의 통신

프론트엔드 서버 ←→ 백엔드 서버 간의 통신


요청과 응답💛

요청(request) ← → 응답(response) 의 구조로 되어있다.

클라이언트가 서버에 HTTP request 를 보내고,

서버가 HTTP response 를 돌려보낸다.

클라이언트와 서버의 모든 통신이 요청과 응답으로 이루어진다.

HTTP는 Stateless💛
HTTP 는 stateless 이다. 즉 State 를 저장하지 않는다.

위의 말의 의미는 요청/응답하는 정보가 저장되지 않는다는 뜻이다. (여러가지의 요청/응답 과정을 거칠 때 그것들끼리 연결되서 작동하는것이 아니다. )

클라이언트가 요청을 보내고 응답을 받은 후, 그 다음에 다시 요청을 보낼 때 그 전에 보낸 요청/응답에 대해 알지 못한다.

HTTP Request 의 구조

1. Starter line💛

해당 request 가 어떤 action 을 의미하는지 정보를 담는다. request target (url) 어떤 곳에다가 요청하는지를 담는다.

2. Headers💛

해당 request에 대한 추가 정보를 담고있는 부분이다.

Key:Value 값으로 되어있다.

Request Target도 주소. Host 도 주소. 두개를 합쳐서 보고 서버가 알게 된다.

3. Body💛

데이터가 담겨있는 부분이다. 여기서 내가 가졌던 의문은 Request 를 하는데 왜 정보를 담아서 보내야되지?하는 것이였다.

→ 클라이언트의 정보를 넘겨줘야, 서버에서 어떤 정보를 담아서 보내줘야할지 알려줄 수 있는 request들이 많다.

예를들면 유저의 로그인 정보를 담아서 서버쪽에 이런 사람이 로그인했다, 고 알려주면 서버측에서 그 사람의 프로필 사진은 뭔지, 그 사람이 어떤 사람을 팔로우하는지, 그런 정보들을 담아서 돌려보내줄것이다.

request 도 데이터를 담아서 요청할 수 있고, response 에서 데이터를 담아서 줄수 있다.

위에서 얘기한 어떤 사항들을 요청하는지는
Content-type 에 의해서 결정된다.

이런 내용들은 개발자도구 Network 패널에서 모두 확인 가능하다.

HTTP Method 란?
HTTP request가 의도하는 action을 정의한것.
GET

요청 입장에서 데이터 가져올때
이름 그대로 어떠한 데이타를 서버로 부터 받아(GET)올때 주로 사용하는 Method.
POST

요청 입장에서 데이터를 포스팅할때
데이터를 생성/수정/삭제 할때 주로 사용되는 Method.
PUT

데이터를 생성 (POST 와 비슷한 기능)
DELETE

데이터를 서버에서 삭제 요청
profile
Doyoon Lee

상태코드

* 일반적인 HTTP 상태코드

100번대 : 정보 전송

200번대 : 성공

300번대 : 리다이렉션

400번대 : 클라이언트측 에러

500번대 : 서버측 에러

  • 꼭 알아두어야할 HTTP 상태코드

200 OK: 클라이언트의 요청이 성공했다는 것을 나타냄

201 Created: 클라이언트의 PUT 요청이 성공적이라는 것을 나타냄

301 Moved Permanently: 브라우저의 요청을 다른 URL로 항시 전달한다는 것을 의미함. 다른 URL에 대한 정보는 Location 헤더에 나타남

302 Moved Temporarily: 브라우저의 요청을 임시 URL로 바꾸고 Location 헤더에 임시로 변경한 URL에 대한 정보를 적음. 클라이언트가 다음에 같은 요청을 하면 기존의 URL로 돌아감

304 Not Modified : 브라우저가 서버에 요청한 자료에 대해 서버는 클라이언트 내에 복사된 캐시를 사용하면 된다는 것을 의미함. 서버는 If-Modified-Since와 If-None-Match 요청 헤더를 사용해 클라리언트가 가장 최근의 자료를 가지고 있는지 여부를 확인함

400 Bad Request : 클라이언트가 서버에 잘못된 요청을 했다는 것을 나타냄

401 Unauthorized : 서버가 클라이언트의 요청에 대해 HTTP 인증 확인을 요구하는 것을 의미함

403 Forbidden : 클라이언트의 요청에 대해 접근을 차단하는 것을 나타냄

404 Not Found : 클라이언트가 서버에 요청한 자료가 존재하지 않음을 나타냄

500 Internal Server Error : 서버가 클라이언트의 요청을 실행할 수 없을 때 500 상태코드가 발생함. 일반적으로 SQL 인젝션 취약점이 존재하는지 확인할 때 500 에러가 유용하게 사용됨

API

API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다.

REST

REST는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 이 용어는 로이 필딩의 2000년 박사학위 논문에서 소개되었다. 필딩은 HTTP의 주요 저자 중 한 사람이다. 이 개념은 네트워킹 문화에 널리 퍼졌다.

GraphQl

그래프QL은 페이스북이 2012년에 개발하여 2015년에 공개적으로 발표된 데이터 질의어이다. 그래프QL은 REST 및 부속 웹서비스 아키텍처를 대체할 수 있다. 클라이언트는 필요한 데이터의 구조를 지정할 수 있으며, 서버는 정확히 동일한 구조로 데이터를 반환한다.

JSON

JSON은 속성-값 쌍, 배열 자료형 또는 기타 모든 시리얼화 가능한 값 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 비동기 브라우저/서버 통신 을 위해, 넓게는 XML을 대체하는 주요 데이터 포맷이다
.


업로드중..

CRUD

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말이다. 사용자 인터페이스가 갖추어야 할 기능을 가리키는 용어로서도 사용된다. CRUD 대신에 다음과 같은 유사용어가 사용되기도 한다.

profile
헬창목표

0개의 댓글