해킹/Webhacking

웹 정리

hellowhales 2023. 6. 27. 14:53
728x90

기본적으로 HTTP 헤드와 바디로 구성된다.

 HTTP Head : 헤드의 각줄은 CRLF로 구분되면 첫 줄은 start-line이고 나머지 줄은 Header라고 부른다. 헤드의 끝은 CRLF 한줄로 구분된다. 시작줄의 경우 request와 response 에 따라 차이가 있고 헤더는 필드와 값으로 구성되며 HTTP 메시지와 바디의 속성을 나타낸다. 0개 이상의 헤더가 있을 수 있다. 

HTTP Body : 헤드 다음에 나오는 모든 줄을 말한다. 내용이 들어가는 부분 

 

HTTP Request : 서버에게 특정 동작을 요구하는 메세지로 서버가 이를 처리하여 응답을 한다. HTTP Request의 시작 줄(start-line)은 메소드(Method), 요청 URI(Request-URI), HTTP 버전으로 구성되고 각각은 띄어쓰기로 구분된다. 

  • Method :  URI가 가리키는 리소스를 대상으로 서버가 수행하길 바라는 동작을 나타낸다. 대표적으로 GET과 POST가 있다.

HTTP Response : HTTP 요청에 대한 결과를 반환하는 메세지. 상태 정보와 리소스가 포함된다.  시작줄은 HTTP 버전, 상태 코드(Status Code), 처리사유(Reason Phrase)로 구성되고 각각은 띄어쓰기로 구분된다. 

  • HTTP 버전 :  서버에서 사용하는 HTTP 프로토콜의 버전
  • 상태 코드 :  요청에 대한 처리 결과를 세 자릿수로 표현
100번대 요청을 제대로 받았고, 처리가 진행 중 100 : 진행 중
200번대 요청이 제대로 처리됨 200 : 성공
300번대 요청을 처리하려면, 클라이언트가 추가 동작을 취해야 함 302 : 다른 URL로 갈 것
400번대 클라이언트가 잘못된 요청을 보내 처리 실패 400 : 문법 오류
403 : 권한 오류
404 : 리소스가 없음
500번대 클라이언트의 요청은 유효하지만 서버에 에러가 있음 500 : 에러 발생
503 : 서버 과부하

HTTPS : HTTP의 경유 응답과 요청이 평문으로 전달된다. HTTPS는 TLS(transport layer security) 프로토콜을 도입하여 이런 문제점을 보완한다. TLS는 서버와 클라이언트 사이에 오가는 HTTP 메시지를 암호화한다. 

HTTP의 특징 

  • Connectionless: 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것을 의미한다.
  • Stateless :  통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미합니다. 

위와 같은 HTTP 특징으로 인해 서버와 클라이언트의 상태를 유지하기 위해 쿠키(Cookie)가 탄생

 

Cookie : 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용

 

Session : 쿠키의 위조를 막음, 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(랜덤 유추 불가)를 만들어 클라이언트에게 전달 해당 키를 Session ID라 함

 

쿠키는 클라이언트가 저장하지만 세션은 서버가 저장함

728x90