zoukankan      html  css  js  c++  java
  • 一、web请求

    BS架构(Browser/Server)

    1. 客户端使用统一的浏览器(Browser)
    2. 服务端(Server)基于统一的HTTP协议
      流程:用户浏览器输入URL地址–》DNS域名解析出IP地址–》向找到的服务器发送一个get请求–》服务器返回数据资源

    HTTP解析

    请求头说明
    Accept-Charset用于指定客户端接收的字符集
    Accept-Encoding用于指定可接受的内容编码,如Accept-Encoding:deflate
    Accept-Language用于指定一种自然语言,如Accept-Language:zh-cn
    Host用于指定被请求资源的Internet主机和端口号,如:Host:www.taobao.com
    User-Agent客户端将它的操作系统、浏览器和其他属性告诉服务器
    Connection当前连接是否保存,如Connention-Keep-Active
    响应头说明
    Server使用的服务器名称,如Server:Apache/1.3.6(Unix)
    Connect-type用于指定发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset-GBK
    Connect-Encoding与请求报头Accept-Encoding对应,告诉浏览器服务端采用的是什么压缩编码
    Connect-Language描述了资源所用的自然语言,与Accept-Language对应
    Connect-Length指明实体正文的长度,用以字节方式存储的十进制数字来表示
    Keep-Active保持连接的时间,如Keep-Alive: timeout-5, max=120
    状态码说明
    200客户端请求成功
    302临时跳转,跳转的地址通过Location指定
    400客户端请求有语法错误,不能被服务器识别
    403服务器收到请求,但是拒绝提供服务
    404请求的资源不存在
    500服务器发生不可预期的错误

    浏览器缓存

    1、浏览器内部缓存
    2、缓存服务器的缓存
    缓存可能会使数据异常
    Ctrl+F5获取最新数据,不访问浏览器缓存,也不访问缓存服务器的缓存
    实现:两种方式(实现Ctrl+F5效果)请求头中添加
    Pragma:no-cach
    Cache-Control:no-cach
    3、Expires设置缓存失效时间
    4、Last-Modified表示一个服务器上资源的最后修改时间

    DNS域名解析

    通过域名是无法直接访问远程主机的,域名需要解析成IP地址才可以与远程主机建立连接
    大体步骤:
    1.检查浏览器缓存–>2.检查计算机本地缓存–>3.检查LDNS(Local DNS Server)–>4.访问根服务器
    1、浏览器缓存存在大小时间的限制,一般几分钟到几小时不等
    2、计算机本地缓存在C:WindowsSystem32driversetchosts中
    3、一般解析过程在LDNS就结束了
    4、DNS根服务器,如果坏掉了就完蛋了

    CDN工作机制

    CDN就是内容分布式网络,一般存放静态资源,缓解服务器压力
    会有负载均衡服务器调度使最优的服务器给用户返回数据。

  • 相关阅读:
    也谈谈我面试的经历
    synchronized和lock比对
    数据结构之查找
    iptable和tcpdump的先后顺序
    iptable的四表五链
    iptable规则的执行顺序
    curl指令的坑
    k8s 网络模型解析之实践
    如何创建一个img文件并且mount 它
    k8s 网络模型解析之原理
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232607.html
Copyright © 2011-2022 走看看