1차 과제 - 개발환경 세팅
datasource & mybatis 연동하는 부분에서 오류가 계속 생겼습니다. 코드 실행 했을 때 데이터베이스와 연결하지 못했다는 오류가 떴기 때문에 db 설정 정보와 mybatis 사용을 위한 mapper 경로가 들어있는 applicationContext-datasource.xml을 집중적으로 분석했습니다. 이 과정에서 제 데이터베이스 관련된 정보를 잘못 입력하여 연동되지 못했다는 것을 알게되어 수정했습니다.
진행상황
- 개발환경 세팅 완료했습니다.
- API의 이해를 위해 아래 내용을 조사하여 Github 에 함께 작성해주세요. ( 필수 )
- HTTP 통신에 관하여
- http - 서버와 클라이언트가 서로 데이터를 주고받기 위해 사용되는 통신 규약
- hyper text transfer protocol
- web browser가 server에게 http request를 하고 그에 대해 server가 web brower에게 http response를 줍니다.
- http request (http 요청)
- 클라이언트가 서버에게 동작을 요청하기 위해 보내는 정보
- 이 정보에는 uri정보, 서버에 요구하는 동작, http 버전 정보 등을 담아서 보낸다.
- get방식
- get은 서버에 요구하는 동작 방식을 의미한다.
- 단어 그대로 요청 정보를 가져오라고(get) 서버에게 알려주는 역할
- 데이터를 url에 담아 전송하고, 메시지를 전달받은 웹 서버에서는 파라미터의 데이터를 기반으로 작업을 처리한 후 결과를 응답
- 파라미터에 담을 수 있는 데이터의 길이가 제한되어 있음
- post 방식
- 입력값을 url 파라미터가 아닌 http메시지 본문에 담아 전송하는 방법
- 메시지 본문에 길이 제한 없음 → 대량의 데이터를 전송하는 경우에 사용
- 전송된 값은 서버에 ㅓ장됨
- get 방식의 경우 url에 저장하여 서버의 상태 변화 없이 단순히 데이터를 전달받아 사용만 한다.
- post 방식은 서버의 상태에 영향을 주게 된다 - 데이터의 저장/수정/삭제 등으로 서버의 기존 상태의 변화를 일으킴
- url 주소에 데이터를 저장하지 않기 때문에 사용자에게 직접적으로 전송되는 데이터가 노출되지 않음 → 상대적으로 보안성이 높음 → 민감한 정보나 기밀 정보 등을 전송하는 경우에 post방식을 사용해야함
- 입력값을 url 파라미터가 아닌 http메시지 본문에 담아 전송하는 방법
- http response( http 응답)
- 클라이언트의 요청에 대한 서버의 답변
- 응답 메시지에서는 상태코드가 중요함
- 상태 코드를 통해 요청에 대한 성공 또는 실패 여부를 먼저 판단한다.
- 주요 상태 코드
- 200 : OK - 요청이 성공적으로 수행되었음
- 404 : not found - 요청한 페이지 없음
- 400 : bad request - 사용자의 잘못된 요청
- 500 : internal server error - 서버 내부 에러
- 주요 상태 코드
- 상태 코드를 통해 요청에 대한 성공 또는 실패 여부를 먼저 판단한다.
- http - 서버와 클라이언트가 서로 데이터를 주고받기 위해 사용되는 통신 규약
- HTTP 통신에 관하여
- 브라우저에 URL을 입력 요청 후 서버에서 응답하는 과정에 대해 학습한 내용 작성
- 브라우저에 url을 입력하면, url은 실제 주소의 별명이므로 실제 주소인 ip 주소를 조회합니다.
- dns는 별명과 ip 주소를 <키,값> 형태로 갖고 있어서 dns에 url의 실제 ip 주소를 요청해서 알아낼 수 있습니다.
- dns에 ip 주소를 물어보기 전에 브라우저는 4개의 캐시를 확인합니다.
- 먼저, 이전에 일정기간 동안 방문했던 웹 사이트의 dns 기록을 보관하고 있는 브라우저 캐시를 확인합니다. 두번째로 os 캐시를 확인합니다. os의 시스템 호출로 dns 기록을 가져옵니다. 세번째로 라우터 캐시를 확인합니다. 마지막으로 isp 캐시를 확인합니다.
- 만약 캐시에서 찾을 수 없다면 dns 서버에 요청을 해서 dns 서버에 재귀적 질의를 통해 ip 주소를 획득합니다.
- 그 후 브라우저와 서버의 tcp 연결이 이루어집니다
- tcp 연결은 3 way handshake 과정을 통해 연결합니다.
- 브라우저가 서버에 요청을 보내면 서버는 요청을 받고 처리한 후 클라이언트에 응답을 보냅니다. 그럼 부라우저는 받은 응답을 렌더링해서 표시합니다.