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:\Windows\System32\drivers\etc\hosts中
3、一般解析过程在LDNS就结束了
4、DNS根服务器,如果坏掉了就完蛋了

CDN工作机制

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

一、web请求的更多相关文章

  1. kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件

    小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...

  2. web请求报出 “超过了最大请求长度” 【注意:重启IIS】

    摘自:http://www.cnblogs.com/loalongblogs/archive/2012/10/16/2726372.html web请求报出 “超过了最大请求长度”   错误原因:as ...

  3. Django用户认证系统(二)Web请求中的认证

    在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authe ...

  4. Web请求响应简单整理

      简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网 ...

  5. WebClient以POST方式发送Web请求

    本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...

  6. Http协议简单解析及web请求过程

    HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1)    ...

  7. web请求的处理流程

    web请求的处理流程如下: 1.客户发起请求到服务器网卡:2.服务器网卡接受到请求后转交给内核处理:3.内核根据请求对应的套接字,将请求交给工作在用户空间的Web服务器进程4.Web服务器进程根据用户 ...

  8. ANTS Performance Profiler 8:支持对Web请求、异步代码和WinRT的性能剖析

    下载与激活:http://download.csdn.net/detail/lone112/6734291 离线激活   位于英国的Red Gate Software有限公司最近发布了ANTS Per ...

  9. Springboot中使用AOP统一处理Web请求日志

    title: Springboot中使用AOP统一处理Web请求日志 date: 2017-04-26 16:30:48 tags: ['Spring Boot','AOP'] categories: ...

  10. 与JavaWeb有关的故事(web请求与Java I/O)

    作为一名后端屌丝程序员,对算法.并发.性能乐此不疲.但是,随着年龄和阅历的增加,显然叶落而不知秋的心态是不太能混了.尤其是,某T面试官在明知我是后端,且明确表示对HTTP协议不太熟的情况下,强行让我解 ...

随机推荐

  1. 论文阅读:Visual-Inertial Localization With Prior LiDAR Map Constraints

    介绍 提出了一个低代价双目视觉惯导定位系统,实现了基于多状态约束下的卡尔曼滤波器(MSCKF)VIO,采用了先验雷达地图.除了稀疏的视觉特征,雷达地图与半稠密的点云也通过紧耦合的MSCKF进行更新,进 ...

  2. 【LeetCode】28. 实现 strStr()

    28. 实现 strStr() 知识点:字符串:KMP算法 题目描述 实现 strStr() 函数. 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 ne ...

  3. 【LeetCode】27.移除元素

    27.移除元素 知识点:数组:双指针:: 题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须 ...

  4. static能修饰什么

    简洁易懂讲清原理,讲不清你来打我~ 修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在main函数运行前就分配空间,有初始值就初始值,没有初始值就系统默认值初始化 修饰普通函数,修改函 ...

  5. 【spring源码系列】之【Bean的循环依赖】

    希望之光永远向着目标清晰的人敞开. 1. 循环依赖概述 循环依赖通俗讲就是循环引用,指两个或两个以上对象的bean相互引用对方,A依赖于B,B依赖于A,最终形成一个闭环. Spring循环依赖的场景有 ...

  6. HashSet 和 HashMap 的比较

    HashMap 和 HashSet 都是 collection 框架的一部分,它们让我们能够使用对象的集合.collection 框架有自己的接口和实现,主要分为 Set 接口,List 接口和 Qu ...

  7. Electron 开发音视频

    废话不多说,咱直接进入正题! 创建 Electron 项目 前提条件 在使用Electron进行开发之前,需要安装 Node.js. 要检查 Node.js 是否正确安装,请在您的终端输入以下命令: ...

  8. 手写Pascal解释器(二)

    目录 一.part4 补充理论知识 二.part5 设计生成式 三.part6 一.part4 承接上次的内容,我们继续编写part4,这个部分我们的任务是完成输入一个仅带乘除运算符的表达式,然后返回 ...

  9. CF559B Equivalent Strings TJ

    前言 题目传送门 正解:模拟,递归. 考试的 T4,还是想复杂了 qwq. 这题不要用 STL,容易 \(\texttt{TLE}\)!! 题意简述 翻译够简了. 对了给一下样例解释的翻译: 第一个样 ...

  10. 软件安装管理(RPM)

    目录 一.linux应用程序 1.1 应用程序与系统命令关系 1.2 典型应用程序的目录结构 1.3 常见的软件包封装工具 二.RPM软件包管理工具 2.1RPM软件包管理器Red-Hat Packa ...