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. [刘阳Java]_步步窥探JS变量作用域

    今天的这个文章题目名称甚是让人会突发异想.JS变量作用域是务必需要搞懂的,单从面试过程就会让面试者烧脑壳.所以,我们还是写一篇关于JS变量作用域的技术专题,让所有小伙伴能够借此文章去整理JS的基础学习 ...

  2. vue tab实现右定位

    呈现效果 利用v-if进行判断,登页面完全加载完毕后,显示tab页, 利用name标签,实现选择哪个tab <template> <el-tabs v-if="displa ...

  3. npm WARN checkPermissions Missing write access to ......解决方法

    npm安装出错 npm WARN checkPermissions Missing write access to ...... 解决方法: 删除本地node_modules文件夹,之后再次 npm ...

  4. Maven之--安装nexus 私服

    开始搜索下载了,nexus3.19版本,下来之后,建立一个maven 骨架过程 quickstart,提示没有lgf4j依赖和和maven插件都没有,开始搜索什么原因,猜想是nexus没有索引,右搜索 ...

  5. PHP-CGI远程代码执行漏洞(CVE-2012-1823)

    影响版本 php < 5.3.12 or php < 5.4.2 访问http://p:8080/index.php?-s即爆出源码,说明漏洞存在 POST /index.php?-d+a ...

  6. cent os 基本命令一

    命令详情 # man [命令] *********************目录****************************** 一.文件及目录操作 二,vi 三,vim 四,用户操作 五, ...

  7. Distance Queries 距离咨询 (LCA倍增模板)

    农夫约翰有N(2<=N<=40000)个农场,标号1到N.M(2<=M<=40000)条的不同的垂直或水平的道路连结着农场,道路的长度不超过1000.这些农场的分布就像下面的地 ...

  8. 桌面小部件AppWidgetProvider简单分析

    1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息 ...

  9. Java数组02——三种初始化及内存分析

    内存分析 三种初始化 例子  package array; ​ public class ArrayDemon02 {     public static void main(String[] arg ...

  10. .NET 6 预览版 7:新功能已完成 ,将专注于改进

    .NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说:"这是 .NET 预览的又一季的结束.", 中文翻译:.NET 6 预览版 7 ...