개발일지

개발일지 30일차

2023. 4. 16. 15:40
목차
  1. 개념정리
  2. HTTP
  3. HTTP 통신방법
  4. Network 탭 살펴보기
  5. General
  6. Resquest Headers
  7. Response Headers
  8. http 구성요소
  9. Router
  10. 기본구조
  11. 예시
  12. req 메서드
  13. res 메서드
  14. 쿼리스트링
  15. 포트킬
  16. 사용중인 포트확인
  17. 사용중인 포트를 종료하기
  18. 명령어 설명

개념정리

HTTP

- 데이터를 주고받는 통신규약중 하나 ( 다른방법 : Web Soekcet을 이용한 실시간 통신 (채팅))

- 가장 범용적으로 쓰이는 통신규약

- 통신규약 : 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속



표현수단 표현방법
사람 말 언어
컴퓨터 네트워크 통신규약 (http , ws)

HTTP 통신방법

  • 클라이언트(브라우저)는 서버(쉽게생각하면 식당종업원 = server (필요한 음식 === 필요한 데이터))에게 원하는 페이지, 데이터를 요구 Requsest
  • 서버(server)는 클라이언트가 요구한 페이지나, 데이터의 존재여부를 확인하고 있으면 해당페이지에 대한 데이터를 반환 response(응답)
  • 클라이언트(브라우저는) 서버에게 전달 받은 데이터를 기반으로 브라우저에 그려줌

Network 탭 살펴보기

- 개발자도구 Network탭에는 요청과 응답에 대한 정보들이 담겨있다.

General

- general 브라우저에서 서버로 보낸 request 요청에 관련된 데이터 어떤 url로 어떤 메소드방식으로 요청했고, 상태도 알 수 있다.

Resquest Headers

- 브라우저에서 서버로 보낸 request 요청에 관련된 데이터

Response Headers

- 서버가 데이터와 함께보낸 추가 데이터

http 구성요소

Method : 

  • GET: 리소스를 얻을 때 사용, 기본 요청은 모두 GET 메소드를 사용해 서버에 요청.
  • POST :  서버에 데이터를 게시할때 사용하는 메소드
  • PUT : 서버에 게시된 데이터를 수정 할때 사용하는 메소드
  • DELETE : 서버에 게시된 데이터를 삭제할때 사용하는 메소드

Header:

- 아래와 같은 사항들에 대해 의사표현을 위한 데이터를 넣고 주고받음

  • 브라우저가 어떤 페이지를 원하는지
  • 요청받은 페이지를 찾았는지
  • 성공적으로 찾았는지

Payload:

- 실질적인 데이터, 서버의 응답데이터

  • 서버가 응답을 보낼때는 항상 payload를 보냄
  • 브라우저가 요청할 때에도 payload를 보낼 수 있다.
  • get메소드를 제외하곤 모두 payload를 보낼 수 있다.
  • 상태코드와 Response
    • 200: OK 성공
    • 201: Created (작성성공)
    • 400: Bad Request(잘못된요청)
    • 401: Unauthorized(권한없음)
    • 404: Not found(찾을수 없음)
    • 4XX: 클라이언트로 인한 오류발생
    • 5XX: 서버로 인한 오류발생

Router

- Routing: 클라이언트의 요청조건에 대응해 응답하는 방식

- Router: 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 express.js 기본 기능

기본구조

router.METHOD(PATH, HANDLER);

예시

router.get('/posts/', (req, res) => {
    res.json({})
})
  • router : express의 라우터를 정의
  • Method : get - HTTP method를 나타냄, 
  • PATH : '/posts/' - 실제 서버에서 API를 사용하기 위한 url경로
  • HANDLER : route - (req, res) => {res.json({})}) route가 일치할때 실행되는 함수

req 메서드

req 메서드 종류

  • req.params: URL의 동적 라우팅 매개변수를 가져옵니다.
  • req.query: 쿼리 문자열 매개변수를 가져옵니다.
  • req.body: POST 또는 PUT 요청의 본문을 가져옵니다.
  • req.get(headerName): 특정 헤더 값을 가져옵니다.
  • req.header(headerName): 특정 헤더 값을 가져옵니다.
  • req.cookies: 쿠키를 가져옵니다.
  • req.session: 세션을 가져옵니다.
  • req.ip: 요청한 clinet의 ip주소가 담겨잇음

req 메서드

  • req.params: 요청을 보냈을때, url에 원하는 데이터를 삽입하여 전달, url특정 경로를 매개변수로 사용 특정게시글을 선택하거나, 명확한 리소스를 지정해야할 때 사용
  • req.query: 요청을 보냈을대 url에 원하는 key - value를 삽입하여 데이터 전달 url의 마지막에?를 이용해 작성가능
  • req.body: 요청을 보냈을때, Body에 데이터를 삽입하엿을때, 사용 key-value의 형태, JSON형태, POST나 PUT 같은 메서드에서 사용

res 메서드

  • res.send(body): HTTP 응답으로 데이터를 보냅니다.
  • res.json(json): JSON 형태로 데이터를 보냅니다.
  • res.render(view [, locals] [, callback]): 뷰 템플릿을 렌더링합니다.
  • res.status(code): HTTP 상태 코드를 설정합니다.
  • res.redirect([status,] path): 다른 URL로 리디렉션합니다.
  • res.cookie(name, value [, options]): 쿠키를 설정합니다.
  • res.clearCookie(name [, options]): 지정된 쿠키를 제거합니다.
  • res.setHeader(name, value): 헤더 값을 설정합니다.
  • res.set(name, value): 헤더 값을 설정합니다.

쿼리스트링

-  url주소에 미리 협의된 데이터를 파라미터로 넘기는것

http://localhost:port/path?querystring
  • http://localhost :호스트주소
  • :port : 포트넘버
  • /path 경로
  • ?querystring: 예시
https://naver.com?key1=value1&key2=value2

- ?key1=value 같은 방식으로 이루어져 있다

- ?key1=value&key2=value2&key3=value3같은 방식으로 keyvalue 추가가능.

포트킬

- 서버를 실행할 때 실행할 포트번호가 사용중인 경우 실행할 포트넘버를 바꾸는 방법이 있고,

나는 때려죽여도 사용중인 포트를 죽이고 내가 그 포트를 사용해야겠다라고 하는 경우 포트킬을 사용하여 사용중인 프로세스를 종료하고 내가 그 포트넘버를 사용할 수 있다.

사용중인 포트확인

터미널에 netstat -a -o 명령어를 입력하면 사용중인 포트번호와 프로세스아이디 (PID)를 볼 수 있다.

사용중인 포트를 종료하기

- taskkill /f /pid pid번호를 입력하여 사용중인 포트를 종료한다. (나는 뭐가 실행중인지 몰라 무서워서 종료못함.)

ex) taskkill /f /pid 912

명령어 설명

출처: https://seomile.tistory.com/91

'개발일지' 카테고리의 다른 글

개발일지 31일차  (3) 2023.04.16
개발일지 2주차 WIL  (0) 2023.04.16
내가보려고 만든 git명령어  (0) 2023.04.15
개발일지 29일차  (0) 2023.04.14
개발일지 28일차  (0) 2023.04.14
  1. 개념정리
  2. HTTP
  3. HTTP 통신방법
  4. Network 탭 살펴보기
  5. General
  6. Resquest Headers
  7. Response Headers
  8. http 구성요소
  9. Router
  10. 기본구조
  11. 예시
  12. req 메서드
  13. res 메서드
  14. 쿼리스트링
  15. 포트킬
  16. 사용중인 포트확인
  17. 사용중인 포트를 종료하기
  18. 명령어 설명
'개발일지' 카테고리의 다른 글
  • 개발일지 31일차
  • 개발일지 2주차 WIL
  • 내가보려고 만든 git명령어
  • 개발일지 29일차
index.ys
index.ys
머리속에 떠도는 코드조각들을 맞추는 공간입니다.
index.ys
코린이 개발일지
index.ys
전체
오늘
어제

공지사항

블로그 메뉴

  • 홈
  • 방명록
  • Github
  • Notion
  • Figma
  • 타닥타닥 (235)
    • 개발일지 (124)
    • html , css (0)
    • Javascript (30)
    • Node.js (8)
    • React (2)
    • 네트워크 (1)
    • DB, SQL (5)
    • AWS (11)
    • CS (21)
    • 면접 (13)
    • 사진 (4)
    • 북로그 (3)
    • 머릿속 (5)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
index.ys
개발일지 30일차
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.