Skip to content
124 changes: 84 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,81 +9,125 @@
- - -

## IP란?
> 내용
> **Internet Protocol**의 약자 <br>
> -> 인터넷을 통해 데이터를 주고받을 때 사용되는 통신 규약이다. (어떤 방식으로 주소를 지정할지, 패킷으로 나눌지, 어떻게 전달할지 결정) <br>
> <br>
> **IP 주소**란 ... 네트워크 내에서 특정기기를 찾아 데이터를 전송할 수 있게 하는 호스트의 _고유번호_ <br>
> IP 통신을 할 때는 데이터에 IP헤더를 넣어 IP패킷으로 만든다. | 헤더에는 목적지 주소와 출발지 주소가 필요하다

## DNS란?
> 내용
> **Domain Name System**의 약자
> 호스트 네임(exwww.naver.com)을 아이피 주소로 바꿔주는 역할

## Stateful과 Stateless란?
> 내용

> 클라이언트와 서버간의 통신을 <br>
> - **Stateful** : 상태유지, 클라이언트의 상태를 서버가 보존하는 것<br>
> - **Stateless** : 상태유지 하지않음, 이 상태에서 서버는 요청이 오면 응답을 보내는 역할만 수행한다. <br>
### Stateful과 Stateless의 차이점
> Stateful은 필요한 정보를 저장해서 쓰지만 <br>
> Stateless는 독립적이어서 매번 필요한 데이터를 클라이언트에게 요청해야한다.
>

## HTTP란?
> 내용
> **HyperText Transfer Protocol**, 웹상에서 다양한 데이터를 주고 받기 위한 프로토콜(통신규약)<br>
> 보통 클라이언트와 서버 간의 요청과 응답으로 작동한다.
### HTTP 메세지 기본 구조 알아보기
- Start Line
- Header
- Content-Length
- Content-Type
- Host
- Date
- User-Agent
- Accept
- Body
- **Start Line** <br>
> 시작 라인은 HTTP Method, Request target, HTTP Version 세가지로 이루어진다. <br>
> - HTTP Method -> 서버가 어떤 동작을 수행해야 하는지 지정한다. 요청에만 존재 <br>
> - Request target -> 요청하는 리소스의 경로 <br>
> - HTTP Version -> HTTP의 버전

- Header <br>
HTTP 메세지의 부가적인 정보를 전송해주는 역할.
- **Content-Length** <br>
전달되는 엔터티의 크기나 길이.
- **Content-Type** <br>
엔터티의 미디어 타입. 데이터가 어떤 데이터 타입을 가지는지.
- **Host** <br>
요청한 호스트의 도메인이나 IP 주소를 지정.
- **Date** <br>
현재 HTTP 메시지가 생성된 시간을 표시한다.
- **User-Agent** <br>
클라이언트 소프트웨어의 식별자를 지정.
- **Accept** <br>
클라이언트가 수락 가능한 키디어 타입 목록 지정.
- Body <br>
실제 전송하는 데이터가 들어간다. (본문) <br>
post 요청일 경우 HTML 폼 데이터가 포함.
### 상태 코드란?
- 200
- 201
- 300
- 400
- 401
- 403
- 404
- 500
- **200** : 성공
- **201** : 성공 + 새로운 리소스가 생성
- **300** : 요청에 대해 응답 가능
- **400** : 잘못된 문법으로 요청 이해 불가능
- **401** : 미승인, 지정한 리소스에 대해 엑세스 권한이 없음
- **403** : 지정한 엑세스에 대한 엑세스가 금지
- **404** : 지정한 리소스를 찾을 수 없다
- **500** : 내부 서버 오류 발생
### http 메서드 알아보기 ([참고](https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%EA%B3%BC%EC%A0%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC))
- GET
- POST
- PUT
- PATCH
- DELETE
- **GET** : 리소스 조회 <br>

- **POST** : 요청 데이터 처리, 생성<br>

- **PUT** : 리소스 생성, 있다면 덮어쓴다.<br>

- **PATCH** : 리소스 부분 수정 <br>

- **DELETE** : 리소스 삭제 <br>

### http와 https의 차이 알아보기
- http는 암호화 되지 않은 데이터를 전송해서 보안이 취약하다 <br>
- https는 기존 http에 데이터 암호화가 추가된 프로토콜. 보안 문제를 개선했다.

## 세계표준시(UTC)란?
> 내용
### 대한민국의 표준시는 무엇인지 **간단**하게 알아보기
> 전세계에서 통용되는 국제 표준시
### 대한민국의 표준시는 무엇인지 **간단**하게 알아보기 <br>
- 대한민국 표준시는 세계표준싱 보다 9시간 빠른 **UTC+9**


## 캐시란?
> 내용
> 데이터를 임시로 저장해둬 응답의 속도를 높인다.

## 프록시란?
> 내용
> 클라이언트와 웹서버 사이의 중개 역할을 하는 서버

## json이란?
> 내용
> 데이터를 쉽게 교환하고 저장하기 위한 텍스트 기반 데이터 교환 표준
### 자신의 이름, 학번, 나이가 들어가는 json배열을 만들어서 아래의 코드 블럭에 적으세요
심현진, 2111, 18의 데이터 한 개와 자신의 정보를 적은 데이터를 만들어 총 2개의 데이터를 만드세요
```json
json 작성하기
[{"name": "심현진","number": 2111,"age": 18},{"name": "임소리","number": 1314,"age": 17}]
```

## .gitignore란?
> 내용
> git에서 관리 대상에서 제거하고 싶은 파일\폴더를 지정하는 파일

## URL, URI, URN이란?
> 내용
> URI : 자원이 어디있는지 자원 자체를 식별 <br>
> URL : 네트워크 상 자원의 위치 <br>
> URN : 자원의 이름을 의미

## .md(markdown)이란?
> 내용
간단한 구문으로 쉽게 텍스트 서식을 지정할 수 있는 마크업 언어
### 많이 쓰는 문법 적기
> - 헤더 : #~######
> - 인용 : >
> - 볼드 : ** **
> - 이텔릭 : * *
> - 볼드 + 이텔릭 : *** ***
> - 코드블럭 : ``` ```
> - 가름줄 : * * *
> - 취소 : ~~ ~~
> - 하이퍼링크 : [이름](링크)

## 스레드란?
> 내용
> 하나의 프로세스가 동시에 여러 작업을 하게 하는 실행/흐름의 단위

## 세션이란?
> 내용
> 서버에서 클라이언트가 연결된 상태를 말한다

## 쿠키란?
> 내용
> 사용자의 웹브라우저에(클라이언트) 저장하는 작은 텍스트 파일

## 주소창에 naver.com을 검색했을 때
> 어떤 일이 일어나는 지 설명해주세요.
> dns로 naver.com의 IP 주소를 찾는다 -> 찾은 IP로 HTTP 요청 메세지를 생성, 전송(요청) -> 데이터 검색 -> 웹페이지 데이터 전송 (응답) -> 응답 메세지를 웹페이지 데이터로 변환, 사용자의 브라우저에 출력한다