클라이언트 -> 브라우저 -> 요청 -> 서버

서버 -> 응답 -> 브라우저 -> 클라이언트

HTTP Status Code (첫 번째 자리 숫자는 상태 코드의 분류를 나타내는 용도로 사용되며, 나머지 두 자리는 세부적인 정보를 나타냅니다.)

  • 1xx (Informational)
    • 1xx 상태 코드는 요청이 수신 되었으며 처리가 계속되고 있음을 나타냅니다.
    • 주로 웹 브라우저와 같은 클라이언트가 서버와의 연결 상태를 확인하기 위해 사용됩니다.
  • 2xx (Successful)
    • 2xx 상태 코드는 클라이언트의 요청이 성공적으로 처리 되었음을 나타냅니다.
    • 가장 많이 사용되는 상태 코드는 200입니다.
    • 이는 요청이 성공적으로 처리 되었으며 클라이언트가 요청한 데이터가 서버에서 제공됨을 의미합니다.
  • 3xx (Redirection)
    • 3xx 상태 코드는 클라이언트가 추가적인 조치를 취해야 함을 나타냅니다.
    • 이 상태 코드는 주로 페이지 이동, 리다이렉션 등에 사용됩니다.
  • 4xx (Client Error)
    • 4xx 상태 코드는 클라이언트에 오류가 있음을 나타냅니다.
    • 이 상태 코드는 주로 클라이언트의 잘못된 요청, 인증 오류 등에 사용됩니다.
    • 가장 많이 사용되는 상태 코드는 404입니다. 이는 클라이언트가 요청한 페이지나 리소스를 서버에서 찾을 수 없음을 의미합니다.
  • 5xx (Server Error)
    • 5xx 상태 코드는 서버에 오류가 발생했음을 나타냅니다.
    • 이 상태 코드는 주로 서버의 오류, 서버 과부하 등에 사용됩니다.
    • 가장 많이 사용되는 상태 코드는 500입니다. 이는 서버 내부 오류가 발생함을 의미합니다.

Method (호출 요청 방식)

  • GET: 이름 그대로 어떤 리소스를 얻을 때 사용됩니다. 브라우저의 주소창에 URL을 입력하면 GET 메서드를 사용해서 서버에 요청을 보냅니다.
  • POST: 웹 서버에 데이터를 게시할 때 사용하는게 일반적입니다. (ex. 회원가입, 게시글 작성, 댓글 작성)
  • PUT:
  • DELETE:

Headers = 추가 데이터, Response = 데이터

객체 = 실제로 존재하는 것 (실물 또는 개념)

클래스 = 객체를 정의해 놓는 것(설계도)

객체의 구성요소 = 속성(멤버변수), 기능(메서드)

인스턴스화 = 클래스로부터 객체를 만드는 과정

인스턴스 = 클래스로부터 만들어진 객체

*객체 와 인스턴스는 비슷하지만 객체가 좀 더 넓은 범위의 뜻으로 쓰인다. 인스턴스는 특정 클래스로 인해 만들어진 하나를 지칭하고 객체는 그 인스턴스 전체를 지칭하는 것이라 생각하면 편하다.

객체의 생성

클래스명 변수명; (클래스 선언 -> 할당 메모리를 만든다)

변수명 = new 클래스명(); (new 연산자를 통해 생선된 클래스가 메모리의 빈 공간에 생성된다. 

메소드 사용 = 참조변수.멤버변수();

새로운 객체를 생성하면 각각의 객체는 독립적이다.

JVM 구조

Hello.java(자바파일) ---> Java Compiler(javc) ---> hello.class(바이트코드) ---> 클래스로더 ---> JVM(OS로부터 메모리 영역을 할당받음) ---> [자바 인터프리터, JIT Compiler,가비지콜렉터 ---> Runtime 시스템 ] ---> 운영체제(OS) ---> 하드웨어(HW)

  • Java : 사람이 읽을 수 있는 방식으로 작성한 코드 파일
  • Java Compiler : Java 파일을 Class 파일로 만들어주는 파일
  • 바이트코드 : 운영체제가 읽을 수 있는 Java Compiler가 변환한 코드 
  • Class : 운영체제가 이해할 수 있는 방식의 코드 파일 / 바이트코드의 확장자
  • 클래스 로더 : 바이트코드를 메모리 영역으로 운반하는 역할의 운반기
  • JVM : Java Virture Machine 의 약자로 가상의 머신을 만들어 운영체제(window, mac, Linux)와 기기(PC, Mobile, 서버)에 상관없이 Java 프로그램을 실행 가능하게 만들어 주는 것.
  • 메모리 영역 : 운영체제로 부터 JVM이 할당받은 영역 (Java 데이터를 저장하는 영역)
  • 자바 인터프리터 : 운영체제가 읽은 바이트코드를 기기가 실행할 수 있는 로우레벨의 기계어로 변환하는 것
  • JIT Compiler : 인터프리터의 효율을 올려주는 컴파일러
  • 가비지 콜렉터 : 메모리 영역에서 안쓰는 영역 주기적으로 청소하는 역할
  • Runtime 시스템 : 프로그램이 실행중인 상태를 관리하는 시스템

JRE : Java Runtime Environment(자바 실행 환경)이라는 뜻으로 .class로 된 Java프로그램을 실행만 시킬 수 있다.

JDK : Java Development Kit(자바 개발 키드) .java 파일들을 .class 파일들로 변환해주는 Java Compiler (javac) 기능, Jdb(디버깅기능), JRE, Java Development Tools 등을 모두 포함하고있다.

저장공간의 선언

int number;

int = 저장공간의 타입

number = 저장공간(변수)의 이름

값의 저장

1. 초기화 int number = 10;

저장공간을 선언함과 동시에 값을 저장 한다면 초기화

2. 덮어쓰기 number = 10;

저장공간을 먼저 선언하고 저장공간의 데이터를 저장하면 덮어쓰기이다.

1. 1xx

정보 요청을 받았고 작업을 진행 중이라는 의미

2. 2xx

성공

200 OK: 성공적으로 처리했을 때 쓰인다. 가장 일반적으로 볼 수 있는 HTTP 상태.
201 Created: 요청이 성공적으로 처리되어서 리소스가 만들어졌음을 의미한다.
204 No Content: 성공적으로 처리했지만 컨텐츠를 제공하지는 않는다. 일반 사용자가 볼 일은 거의 드물며 처리 결과만 중요한 API 요청 등에서 주로 사용한다.
206 Partial Content: 컨텐츠의 일부 부분만 제공한다. 보통 클라이언트에서 시작 범위나 다운로드할 범위를 지정한 경우 자동으로 해당 부분만 제공할 때 사용하는 코드이다.

 

3. 3xx
301 Moved Permanently(영구 이동): 영구적으로 컨텐츠가 이동했을 때 사용된다.
302 Found: 일시적으로 컨텐츠가 이동했을때 사용된다.

4. 4xx

403 Forbidden(거부됨): 서버가 요청을 거부할 때 발생한다. 관리자가 해당 사용자를 차단했거나 서버에 index.html 이 없는 경우에도 발생할 수 있다. 혹은 권한이 없을 때(로그인 여부와는 무관하다)에도 발생한다.

404 Not Found(찾을 수 없음): 찾는 리소스가 없다는 뜻으로, 가장 흔하게 볼 수 있는 오류 코드이다.

408 Request Timeout(요청 시간 초과) : 요청 중 시간이 초과되었을때 사용하는 코드이다.

410 Gone(사라짐) : 404와는 달리 찾는 리소스가 영원히 사라진 경우 사용하는 코드이다. 쉽게 말해, 404는 "찾는 게 일단 여긴 없는데 다른 곳에는 있을 수도 있어요" 라는 뜻이고, 410은 "니가 찾는게 있었는데요, 없었습니다"라는 뜻이다.

 

5. 5xx

500 Internal Server Error(내부 서버 오류): 서버에 오류가 발생해 작업을 수행할 수 없을 때 사용된다. 보통 설정이나 퍼미션 문제. 아니면 HTTP 요청을 통해 호출한 문서가 실제 HTML 문서가 아니라 JSP, PHP, 서블릿 등의 프로그램일 경우 그 프로그램이 동작하다 세미콜론을 빼먹는등의 각종 에러로 비정상 종료를 하는 경우 이 응답코드를 보낸다.
501 Not Implemented(요청한 기능 미지원): 서버가 요청을 수행하는데 필요한 기능을 지원하지 않는 경우 사용된다. 웬만해서는 볼 수 없다.
502 Bad Gateway(게이트웨이 불량): 게이트웨이가 연결된 서버로부터 잘못된 응답을 받았을 때 사용된다.
503 Service Temporarily Unavailable(일시적으로 서비스를 이용할 수 없음): 서비스를 일시적으로 사용할 수 없을 때 사용된다. 주로 웹서버 등이 과부하로 다운되었을 때 볼 수 있다.
504 Gateway Timeout(게이트웨이 시간초과): 게이트웨이가 연결된 서버로부터 응답을 받을 수 없었을 때 사용된다.

오늘한 과제를 업로드 하려는데 github repository에 push하려는 단계에서

fatal: invalid refspec 오류가 떴다.

원인을 찾아보니 레퍼지토리를 처음 만들면

브랜치 설정과 remote add 를 통해 레퍼지토리 주소를 입력해 줬어야 하는데

이런 초기설정을 안해줘서 그렇다 한다!

git branch -M main
git remote add origin https://github.com/notitle12/sparta2.git
git push -u origin main

 

+ Recent posts