zoukankan      html  css  js  c++  java
  • HTTP、HTTPS、TCP/IP基础知识

    以下内容是参考多篇博文总结而来,仅作为学习笔记,若有错误欢迎指正!

    一、HTTP(超文本传输协议)

    1、基本概念

    HTTP协议是一个基于TCP/IP通信协议来传递数据的协议

    2、通信流程

    2.1 建立tcp连接

    2.2 web浏览器向web服务器发送请求命令

    2.3 web服务器应答

    2.4 web服务器关闭tcp连接

    2.5 浏览器接收到服务器响应的请求

    3、HTTP的特点

    3.1 无连接:每次连接只处理一个请求,每次请求需通过TCP三次握手四次挥手来和服务器重新连接

    3.2 无状态:对事务处理没有记忆能力,对客户端没有状态存储

    3.3 基于请求和响应

    3.4 通信使用明文

    3.5 请求和响应不会对通信方进行确认

    3.6 无法保证数据的完整性

    4、HTTP请求格式

    请求行、请求头、空行、请求主体

    5、HTTP请求方法

    get、post、head、delete、put、options、connect、trace

     二、HTTPS(超文本传输安全协议)

    1、基本概念

    HTTPS协议由 HTTP加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议

    2、通信流程

    2.1 客户端向服务器发起https请求

    2.2 服务器返回客户端自己的数字证书和公钥

    2.3 客户端验证服务器端发送来的数字证书是否与本地受信任的证书相关信息一致,若验证通过,浏览器产生随机的对称密钥,并用服务器的公钥进行加密

    2.4 服务器用自己的私钥进行解密得到对称密钥

    2.5 双方用对称密钥进行通信

    3、HTTPS的特点

    3.1 内容加密:采用混合加密技术,中间这无法直接查看

    3.2 验证身份:通过证书认证客户端访问的是自己的服务器

    3.3 保证数据完整性:防止传输内容被冒充

    三、TCP/IP(传输控制/网络协议)

    1、四层体系结构

    1.1 应用层:负责向用户提供应用程序,如HTTP、SMTP、FTP、Telnet

    1.2 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文,实现数据传输与数据共享

    1.3 网络层: 负责路由以及把分组报文发送给目标主机或网络,这一层有IP、ICMP

    1.4 数据链路层: 负责封装和解封IP报文,发送和接受ARP/RARP报文等

    2、TCP

    2.1 面向连接:发送数据前必须在两端建立连接

    2.2 仅支持单播传输

    2.3 面向字节流

    2.4 提供拥塞控制:网络拥塞时,TCP能减少向网络注入数据的速率和数量

    2.5 TCP提供全双工通信

    2.6 可靠传输

    3、UDP

    3.1 面向无连接

    3.2 有单播、多播、广播等功能

    3.3 面向报文

    3.4不可靠传输

    3.5 头部开销小,传输数据报文高效

    四、浏览器输入URL后的流程

    1、浏览器地址栏中输入 url,先解析 url地址是否合法。
    2、浏览器查看是否有缓存(浏览器缓存-系统缓存-路由器缓存),如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
    3、在发送 http 请求前,需要域名解析(DNS 解析),解析获取相应的 IP 地址。
    4、浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手。
    5、握手成功后,浏览器向服务器发送 http 请求,请求数据包。
    6、服务器处理收到的请求,将数据返回至浏览器
    7、浏览器收到 HTTP 响应
    8、浏览器解码响应,如果响应可以缓存,则存入缓存
    9、 浏览器发送请求获取嵌入在 HTML 中的资源(html,css,javascript,图片,音乐),对于未知类型,会弹出对话框。
    10、 浏览器发送异步请求。
    11、页面全部渲染结束。

     【

    浏览器缓存:浏览器会记录 DNS 一段时间,因此,只是第一个地方解析 DNS 请求;
    操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的 DNS 查询缓存);
    路由器缓存:如果上述两个步骤均不能成功获取 DNS 记录,继续搜索路由器缓存;
    ISP 缓存:若上述均失败,继续向 ISP 搜索。

  • 相关阅读:
    java8中常用的新功能
    代码走查案例2
    redis的key设置每天凌晨过期的思路
    代码走查案例1
    一场没有序列化引发的血案
    面试总结
    hr相关的
    mysql底层原理
    如何学好并发编程
    流程图总结
  • 原文地址:https://www.cnblogs.com/xiaoxin-test/p/13385493.html
Copyright © 2011-2022 走看看