diff --git a/README.md b/README.md index d30763d..3b269fd 100644 --- a/README.md +++ b/README.md @@ -9,81 +9,125 @@ - - - ## IP란? -> 내용 +> **Internet Protocol**의 약자
+> -> 인터넷을 통해 데이터를 주고받을 때 사용되는 통신 규약이다. (어떤 방식으로 주소를 지정할지, 패킷으로 나눌지, 어떻게 전달할지 결정)
+>
+> **IP 주소**란 ... 네트워크 내에서 특정기기를 찾아 데이터를 전송할 수 있게 하는 호스트의 _고유번호_
+> IP 통신을 할 때는 데이터에 IP헤더를 넣어 IP패킷으로 만든다. | 헤더에는 목적지 주소와 출발지 주소가 필요하다 ## DNS란? -> 내용 +> **Domain Name System**의 약자 +> 호스트 네임(exwww.naver.com)을 아이피 주소로 바꿔주는 역할 ## Stateful과 Stateless란? -> 내용 - +> 클라이언트와 서버간의 통신을
+> - **Stateful** : 상태유지, 클라이언트의 상태를 서버가 보존하는 것
+> - **Stateless** : 상태유지 하지않음, 이 상태에서 서버는 요청이 오면 응답을 보내는 역할만 수행한다.
### Stateful과 Stateless의 차이점 +> Stateful은 필요한 정보를 저장해서 쓰지만
+> Stateless는 독립적이어서 매번 필요한 데이터를 클라이언트에게 요청해야한다. +> ## HTTP란? -> 내용 +> **HyperText Transfer Protocol**, 웹상에서 다양한 데이터를 주고 받기 위한 프로토콜(통신규약)
+> 보통 클라이언트와 서버 간의 요청과 응답으로 작동한다. ### HTTP 메세지 기본 구조 알아보기 -- Start Line -- Header - - Content-Length - - Content-Type - - Host - - Date - - User-Agent - - Accept -- Body +- **Start Line**
+> 시작 라인은 HTTP Method, Request target, HTTP Version 세가지로 이루어진다.
+> - HTTP Method -> 서버가 어떤 동작을 수행해야 하는지 지정한다. 요청에만 존재
+> - Request target -> 요청하는 리소스의 경로
+> - HTTP Version -> HTTP의 버전 + +- Header
+ HTTP 메세지의 부가적인 정보를 전송해주는 역할. + - **Content-Length**
+ 전달되는 엔터티의 크기나 길이. + - **Content-Type**
+ 엔터티의 미디어 타입. 데이터가 어떤 데이터 타입을 가지는지. + - **Host**
+ 요청한 호스트의 도메인이나 IP 주소를 지정. + - **Date**
+ 현재 HTTP 메시지가 생성된 시간을 표시한다. + - **User-Agent**
+ 클라이언트 소프트웨어의 식별자를 지정. + - **Accept**
+ 클라이언트가 수락 가능한 키디어 타입 목록 지정. +- Body
+ 실제 전송하는 데이터가 들어간다. (본문)
+ 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** : 리소스 조회
+ +- **POST** : 요청 데이터 처리, 생성
+ +- **PUT** : 리소스 생성, 있다면 덮어쓴다.
+ +- **PATCH** : 리소스 부분 수정
+ +- **DELETE** : 리소스 삭제
+ ### http와 https의 차이 알아보기 +- http는 암호화 되지 않은 데이터를 전송해서 보안이 취약하다
+- https는 기존 http에 데이터 암호화가 추가된 프로토콜. 보안 문제를 개선했다. ## 세계표준시(UTC)란? -> 내용 -### 대한민국의 표준시는 무엇인지 **간단**하게 알아보기 +> 전세계에서 통용되는 국제 표준시 +### 대한민국의 표준시는 무엇인지 **간단**하게 알아보기
+- 대한민국 표준시는 세계표준싱 보다 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 : 자원이 어디있는지 자원 자체를 식별
+> URL : 네트워크 상 자원의 위치
+> URN : 자원의 이름을 의미 ## .md(markdown)이란? -> 내용 +간단한 구문으로 쉽게 텍스트 서식을 지정할 수 있는 마크업 언어 ### 많이 쓰는 문법 적기 +> - 헤더 : #~###### +> - 인용 : > +> - 볼드 : ** ** +> - 이텔릭 : * * +> - 볼드 + 이텔릭 : *** *** +> - 코드블럭 : ``` ``` +> - 가름줄 : * * * +> - 취소 : ~~ ~~ +> - 하이퍼링크 : [이름](링크) ## 스레드란? -> 내용 +> 하나의 프로세스가 동시에 여러 작업을 하게 하는 실행/흐름의 단위 ## 세션이란? -> 내용 +> 서버에서 클라이언트가 연결된 상태를 말한다 ## 쿠키란? -> 내용 +> 사용자의 웹브라우저에(클라이언트) 저장하는 작은 텍스트 파일 ## 주소창에 naver.com을 검색했을 때 -> 어떤 일이 일어나는 지 설명해주세요. +> dns로 naver.com의 IP 주소를 찾는다 -> 찾은 IP로 HTTP 요청 메세지를 생성, 전송(요청) -> 데이터 검색 -> 웹페이지 데이터 전송 (응답) -> 응답 메세지를 웹페이지 데이터로 변환, 사용자의 브라우저에 출력한다