[컴퓨터 네트워크] HTTP 및 HTTPS 프로토콜 설명
소개 : 우리가 웹 페이지를 열 때 멋진 여행은 결국 무엇에 중간에 자리를 차지하게 URL을, 열려있는 웹 페이지에서 알 수있는 세계를위한 중요한 창으로 시작하거나 입력? 이러한 의문과 함께, 우리는이 하나의 신비를 탐구하기 위해 함께 작동!
한 .URL
정의 : 각 통합 정보 자원 유일한 인터넷 주소가 www가, 주소가 URL (범용, 유니폼 리소스 로케이터)이라고에,이, www가 범용 인 네트워크 주소를 의미합니다.
구문 : 자원의 종류, 호스트 도메인 이름, 리소스 파일 이름의 스토리지 자원 : URL은 세 부분으로 구성되어 있습니다.
프로토콜, 호스트, 포트, 경로 : 네 부분이 또한 고려 될 수있다 구성되어
브라우저의 URL을 입력
1브라우저에서 액세스하려는 URL을 입력합니다.
이도메인 이름의 IP 주소까지 브라우저 외모, 당신은 도메인 이름 서버의 IP 주소에 해당하는 확인하려면 먼저 필요, DNS 서버는 서버의 해당 IP 주소로 이름을 확인할 수 있습니다.
DNS 조회 과정 :
- · 브라우저 캐시 : 브라우저는 보통 30 분 이분 사이의 시간 동안 DNS 레코드를 캐시합니다.
- • 시스템 캐시 : 브라우저 캐시가 발견 어떤 기록을 필요로하지 않는 경우, 브라우저가 쉽게 기록 시스템 캐시를 얻을 수 그래서, 시스템 콜 (예 : gethostbyname까지도 기능) 할 것입니다.
- · 라우터 캐시 : 다음, 라우터로 전송 이전 쿼리 요청, 그것은 일반적으로 그 자체 DNS 캐시를해야합니다.
- · ISP DNS 캐시 : 그럼 우리가 일반적으로 해당 캐시 녹화를 찾을 수있는 ISP 캐시 DNS 서버를 확인해야합니다.
- · 재귀 검색 : 최종 반복 검색 사이트의 도메인 이름 서버에 .COM 최상위 도메인 서버에서 시작 루트 도메인 이름 서버에서 ISP의 DNS 서버는 DNS 서버의 캐시는 일반적으로 .COM 도메인 이름 서버의 도메인 이름을 가지고있다.
삼HTTP 프로토콜 형식에 따라, 조직 HTTP 요청 (HTTP 프로토콜 형식)
4. 빌드 TCP 클라이언트 (TCP 연결 지향 프로토콜 형식 특성 ---- 안정적인 전송)
5. 레이어는 라우팅, 포장을 통해 서버에 송신 된
6서버는 형식의 요청에 따라 HTTP 프로토콜을 구문 분석, 서비스 처리, 해당 데이터의 조직이 클라이언트에 HTML 응답을 전송, 웹 서버에서 요청을받은 후 서버 아파치, Ngnix으로 요청을 처리하기 위해 (HTTP 서버가 정확해야한다) IIS 등등. 웹 서버는 일정 파일에 필요한 자원을 알고, 다음 사용자의 요청과 리소스 파일의 해당 매개 변수 및 호출 데이터베이스 정보를 처리하고 웹 서버를 통해 브라우저 클라이언트로 결과를 반환하기 위해, 사용자 요청을 해결합니다.
(7)연결을 종료 4 배를 흔들며 닫기 세 방향 핸드 셰이크.
8브라우저가 HTML을 구문 분석, 정밀, 부하 구문 분석에 브라우저 요구에 더 또한 CSS, JS를 포함하여 단지 HTML보다. 다른 미디어 리소스, 또한 부하 이미지와 동영상에. 구문 분석 HTML로 브라우저는 DOM 트리 CSS 규칙 트리를 생성, CSS 구문 분석을 생성 한 다음 트리로 DOM 트리를 생성하고 CSS 규칙 트리를 렌더링합니다. 다른 DOM 트리와 트리를 렌더링, 및 트리 머리를 렌더링하지 않습니다, 전혀 다른 디스플레이 노드를 표시 할 필요가 없습니다 것입니다. 확인 프로세스 브라우저는 CSS를 구문 분석하는 동안, 당신은 계속로드 할 수 있습니다, 예를 들어, 시리즈에서 수행되는 것이 아니다 구문 분석 HTML,하지만 JS 스크립트 실행을 분석 할 때, 후속 차단 문제를 표시 할, 구문 분석 HTML을 중지합니다 .
9브라우저 레이아웃 렌더링에 따라 트리 레이아웃, CSS 스타일 컴퓨팅, 즉 크기와 페이지 형상 정보의 각 노드의 위치를 렌더링합니다. HTML 기본 흐름 레이아웃, CSS이며, JS,이 레이아웃을 깰 스타일과 DOM의 크기와 위치의 모양을 변경합니다. 다시 그리기 및 리플 로우 : 우리는 두 가지 중요한 개념을 언급해야한다.
(10)사용자에게 최종 브라우저 인터페이스.
두 .HTTP 협정
1.http 프로토콜 설명
①HTTP 프로토콜 (하이퍼 텍스트 전송 프로토콜, 하이퍼 텍스트 전송 프로토콜)는 인터넷에서 가장 널리 사용되는 네트워크 프로토콜입니다, 모든 WWW 문서는 프로토콜 표준을 준수해야합니다.
②HTTP 프로토콜 (예 : HTML 파일 및 이미지 및 액세스 URL에 쿼리 결과 페이지의 상단에있는 다른 정보와 같은) 전송 데이터를 TCP / IP 통신 프로토콜을 기반으로
③HTTP 계약은 일반적으로 우리 HTTPS의 기준에 다음의 TCP 프로토콜을 통해 수행된다 에서 TLS 또는 SSL 프로토콜을 추가합니다.
④HTTP 프로토콜 요청 및 응답으로 구성 애플리케이션 계층 프로토콜은, 표준 클라이언트 - 서버 모델이다. 주 : HTTP는 상태 비 저장 프로토콜입니다.
⑤HTTP의 기본 포트는 포트 80입니다.
2.HTTP 요청 방법
아니오. | 방법 | 기술 |
---|---|---|
1 | 가져 오기 | 요청 페이지 정보를 지정하고 엔터티 본문을 반환합니다. |
이 | 머리 | GET 요청과 마찬가지로, 헤더를 얻기 위해, 응답하지만 특정 내용을 반환 |
삼 | 우편 | 처리 요구 지정된 자원 (예를 들면, 파일 제출 양식 또는 업로드)에 데이터를 제출. 데이터는 요청 본문에 포함되어 있습니다. POST 요청 확립 및 / 또는 기존의 자원 새 자원에 위해 개정 될 수 있습니다. |
4 | 놓다 | 데이터는 문서의 내용을 대체하기 위해 지정된 클라이언트에서 서버로 전송. |
5 | 지우다 | 지정된 페이지를 삭제하도록 서버를 요청합니다. |
6 | 잇다 | HTTP / 1.1 프로토콜 프록시 서버 파이프 라인 모드로 연결을 예약 할 수 있습니다. |
(7) | 옵션 | 그것은보기 서버 성능에 클라이언트를 할 수 있습니다. |
8 | 자취 | 에코 요청 주로 검사 또는 진단을 위해 서버에 의해 수신. |
9 | 반점 | 그것은 국부적으로 알려진 자원 업데이트를 사용 PUT 방법을 보완한다. |
3.HTTP 요구 포맷
본체없이 HTTP 요구 포맷 (파라미터) :
HTTP 요청 형식 본체 (파라미터)를 갖는다 :
请求行:
方法:
GET 获取资源
POST 向服务器端发送数据,传输实体主体
PUT 传输文件
HEAD 获取报文首部
DELETE 删除文件
OPTIONS 询问支持的方法
TRACE 追踪路径
协议/版本号
URL
请求头:
通用首部(General Header)
请求首部(Request Header)
响应首部(Response Header)
实体首部(Entity Header Fields)
请求体
4.HTTP 프로토콜 기능 :
- 비 상태 : 클라이언트 상태 저장에 대한 합의는 이러한 반복 로그인이 필요한 웹 사이트를 방문하는 등의 핸들 것들에는 "메모리"능력이 없다.
- 없음 연결 : HTTP 전에 / 1.1 인해 무의 특성은 악수를하기 위해 각 요청의 요구는 TCP를 통해 3-4 번 흔들었다 없으며, 서버 연결을 다시 설정합니다. 예를 들어, 짧은 시간에 여러 요청이있는 클라이언트는 리소스 서버와 응답이 사용자의 요청을 있었는지, 항상 불필요한 시간과 트래픽을 소모 요청에 응답 할 필요가 구별 할 수 없습니다.
- 요청과 응답을 바탕으로 : 간단하고 빠른 클라이언트 요청에 의해 시작 기본 특성,,, 유연한 서비스 측 반응.
- 통신 파티를 확인하지 않습니다 일반 텍스트 통신 요청 및 응답을 사용하지 보호 데이터 무결성을 수행합니다.
워크 플로우 5.HTTP
는 HTTP 작업은 자신의 작품은 네 단계로 구분되고, 트랜잭션이라고
- 첫째, 클라이언트와의 연결을 설정하기 위해 서버의 요구가 단순히 하이퍼 링크를 클릭, HTTP 작업을 시작했다.
- 접속이 확립 된 후에, 클라이언트는 서버에 요청을 전송하고, 요청의 형식 의미 유니폼 리소스 식별자 (URL), 프로토콜 버전 번호를, 후면은 MIME 메시지는 요청 개질제, 클라이언트 정보와 가능한 콘텐츠를 포함한다.
- 서버가 요청을 수신 한 후, 대응 응답 정보, 프로토콜 버전 번호 정보, 성공 또는 오류 코드 위로는 MIME 정보 서버 정보, 기업 정보 및 가능한 내용을 포함을 포함하는 상태 라인의 포맷을 얻었다.
- 클라이언트가 서버에 의해 반환 된 정보가 사용자의 화면에 브라우저에 표시를 수신 한 후 클라이언트와 서버 연결이 끊어졌습니다.
세 .HTTPS 협정
1.HTTPS 프로토콜 개요 :
①HTTPS (보안 하이퍼 텍스트 전송 프로토콜) 하이퍼 텍스트 전송 프로토콜을 고정합니다.
② HTTPS는 클라이언트 컴퓨터와 서버 간의 정보를 교환하기위한 HTTP의 발전에 따라 보안 통신 채널이다.
③ HTTPS 짧은에, 교환 정보 보안 소켓 레이어 (SSL)을 사용하여, HTTP를 할 안전합니다.
④HTTPS는 넷스케이프에 의해 개발 및 데이터 압축 및 압축 해제 작업을위한 자사의 브라우저에 내장하고 네트워크를 통해 전송 결과를 반환합니다.
⑥ 하위 계층 HTTP 애플리케이션 레이어로 넷스케이프의 보안 소켓 계층 SSL HTTPS 세계의 응용 프로그램
⑦HTTPS는 그래서 의사 소통을 사용하고 TCP / IP에로 포트 443 대신에 HTTP를 포트 80을 사용하여
SSL에게 비즈니스 정보를 암호화에 적합한 RC4 스트림 암호화 알고리즘, 40 개 키워드.
⑧HTTPS 및 SSL은 X.509 디지털 인증서의 사용을 지원합니다.
2.HTTPS 원리 :
①클라이언트 지원 알고리즘의 목록과이를 서버에 전송 난수를 생성하는 키로서 사용된다.
② 서버 선택 암호 알고리즘 목록에서 알고리즘, 그리고 클라이언트 공개 키 서버를 포함하는 인증서를 전송하고 또한 서버로 제공하면서 또한 인증 목적의 서버 인증서 식별 포함을 난수를 생성하는 키.
③ , 추출 서버의 공개 키 (인증서, 디지털 서명 참조가 될 수를 확인하기위한) 클라이언트를 검증 서버 인증서는, 그런 자신의 공개 키를 사용하여 pre_master_secret라는 임의의 암호 문자열과 서버를 생성 암호화 (참조 비대칭 암호화 / 복호화)하고, 서버에 암호화 된 정보를 전송한다.
④ 클라이언트와 서버는 각각 독립적으로 암호화 및 MAC 키 (a DH 키 교환 알고리즘을 참조)을 산출하고, 임의의 값은 클라이언트와 서버를 pre_master_secret.
⑤ 클라이언트는 서버에 모든 MAC 값 핸드 셰이크 메시지를 보냅니다.
⑥ 서버는 MAC 값의 모든 클라이언트에 메시지를 핸드 셰이크 보냅니다.
3.HTTPS 암호화, 암호 해독이 기능
오빠의 사진에서 차용 : HTTPS : //blog.csdn.net/kobejayandy/article/details/52433660
①클라이언트가 HTTPS 요청을 시작합니다
②서버 구성
- 디지털 인증서가 있어야합니다 HTTPS 프로토콜 서버를 사용하여 1. 당신은 당신이 또한 조직에 적용 할 수있는, 자신의 할 수 있습니다
- 2. 차이점은 액세스를 계속하고 팝업되지 않습니다 프롬프트 페이지를 신뢰할 수있는 인증서를 사용하기 전에를 통해 인증서가 클라이언트 인증의 자신의 방법이 필요하다는 것이다
- 3.이 인증서는 실제로 공개 키와 개인 키 양도 증명서의 무리입니다
③이것은 실제로 많은 정보를 포함하는 공개 키 인증서입니다
④클라이언트 인증서 구문 분석
- 전체에 TLS 클라이언트 1. 먼저 공개 키의 유효성을 확인합니다
- 인증서가 문제가 아닌 경우 2. 그것은 임의의 값을 생성
- 3. 임의의 값이 인증서를 사용하여 다음이다 암호화
⑤전송 정보를 암호화
- 1. 전송 된 랜덤 값이 부분은 인증서로 암호화
- 통신 클라이언트 및 서버의 임의의 값에 의해 해독 암호화 할 수 있습니다 후 2 목적은 서버가이 임의의 값을 얻을 수 있도록하는 것입니다
⑥서버는 정보를 해독
-
클라이언트를 통한 개인 키를 획득하기 위해 서버의 개인 키 후에 1, 다음 값 대칭형 콘텐츠를 암호화하여
-
2. 당신이 개인 키를 알고, 또는 콘텐츠를 얻을 수 있지만, 단지 클라이언트와 서버가이 개인 키를 알고 그렇게하지 않는 대칭 암호화, 개인 키 정보와 함께 혼합하여 알고리즘, 소위 너무 오래 같은 암호화 알고리즘 튼튼한의 충분한 개인 복잡한만큼 충분한 데이터 보안.
⑦교통 암호화 정보
- 1.이 정보는 서비스 정보 세그먼트를 암호화하기 위해 비밀 키의 일부 클라이언트가 감소 될 수있다
⑧클라이언트 해독 정보
- 1 클라이언트와 끝나기 전에 세대를 오는 복호화 정보 서버 개인 키, 그래서 해독 된 콘텐츠를
4.HTTPS 디자인 목표 :
(1) 데이터 기밀성 : 데이터를 보장하는 것은 전송하는 과정에서 제 3 자보고 만족하지 않습니다. 특사가 소포를 전달처럼 그들은 패키지이기 때문에, 다른 사람 안에 무엇인지 알 수 없다.
(2) 데이터 무결성 : 콘텐츠를 전송하는 제삼자에 의한 침해 감지합니다. 택배 소포가 무엇인지를 모르는 설치,하지만 그는 길을 물건 수 있지만, 우리는 쉽게 찾고 거부 할 수 있습니다 대체하는 경우, 데이터 무결성을 의미합니다.
(3) 본인 확인 보안 : 데이터를 보장하기 위해 사용자가 원하는 목적지에 도착합니다. 우리가 패키지 재료 패키지 아니지만, 게시 소포,하지만 패키지가 바로 이곳 보낼 수 있도록 신원 확인을 통해, 잘못된 장소를 전송하지 않습니다 있는지 확인해야합니다 때처럼
5.HTTPS 장점 :
- 1. HTTPS 프로토콜과 사용자 인증 서버는, 확인 데이터를 송신 올바른 클라이언트와 서버가있다.
- 2.https 프로토콜은 SSL + HTTP 전송 중에 데이터 도난을 방지하는 전송 프로토콜, 네트워크 인증 프로토콜보다 보안 HTTP 프로토콜을 암호화함으로써 생성되는, 데이터 무결성을 보장하기 위해 변경한다.
- 현재 프레임 워크에서 3.https 그래도 가장 안전한 솔루션이 아닌 절대적인 보안이지만, 크게 중개인 공격의 비용을 증가시킨다.
6.HTTPS 단점 :
- 1.https 프로토콜 핸드 쉐이크 단계는 시간이 많이 걸리는, 페이지로드 시간이 연장됩니다.
- 연결 캐시 효율 HTTP와 같은 좋은대로 증가 데이터 오버 헤드, 심지어 기존의 보안 조치도 영향을 받게되지 2.https.
- 3.https 보안 프로토콜은 거의 납치 어떤 역할로 해커 공격, 서비스 공격 및 서버 측면의 거부의 범위를 가지고있다.
- 4.SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
- 5.成本增加。部署 https后,因为 Https协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
- 6.https协议的加密范围也比较有限。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
四.HTTP与HTTPS区别(重中之重)
不同点:
- 1.https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。
- 2.https在TCP三次握手阶段以后,还需要进行SSL的headshake,协商加密使用的对称加密密钥。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
- 3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- 4.http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)
- 5.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
相同点:
- 1.都是采用同一个基础协议作为HTPP或HTTPS客户端—浏览器
- 2.设立一个连接到Web服务器指定的端口
- 3.服务器接收到请求,会返回一个状态码以及消息
- 4.系统使用统一资源定位器URI模式,因此资源可以被唯一指定
五、如何正确选择HTTP协议和HTTPS协议
전면을 분석함으로써 우리는 순서대로, 데이터 전송 암호화의 시리즈를 통해 보안, HTTPS 프로토콜을 보장 크게 사이트를 줄일 인증서 및 기타 작업 성능과 효율성을 설치하는 것을 알고, 보안, 해커 공격의 범위가 우리는 전송을 위해 HTTPS 프로토콜을 사용할 수 있습니다 필요 일부 기밀 문서 또는 정보를 경우, 서비스 거부 공격 및 서버 납치 거의가, 사용, 많은, 어떤 효과를 얻을 수 있습니다. SSL 인증서가 더 비싼 더 강력한 인증서를 구매해야하기 때문에 또한, HTTPS는 비용이 많이 소모됩니다. 요약하면, HTTP 프로토콜, 안전하지 않은 있지만, 그러나 어떤 과정의 효율적이고 편리한 기능에서 가장 널리 사용되는 인터넷 네트워크 전송 프로토콜입니다.