一、web请求
BS架构(Browser/Server)
- 客户端使用统一的浏览器(Browser)
- 服务端(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请求的更多相关文章
- kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...
- web请求报出 “超过了最大请求长度” 【注意:重启IIS】
摘自:http://www.cnblogs.com/loalongblogs/archive/2012/10/16/2726372.html web请求报出 “超过了最大请求长度” 错误原因:as ...
- Django用户认证系统(二)Web请求中的认证
在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authe ...
- Web请求响应简单整理
简单对Web请求响应如何处理进行的整理,难免有理解不到位,理解有偏差的地方,如有理解有误的地方,希望大牛批评指正. 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网 ...
- WebClient以POST方式发送Web请求
本例使用WebClient以POST方式发送Web请求并下载一个文件,难点是postData的构造,发送Web请求时有的网站要求可能要求 Cookies前后一致.其中application/x-www ...
- Http协议简单解析及web请求过程
HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤: 1) ...
- web请求的处理流程
web请求的处理流程如下: 1.客户发起请求到服务器网卡:2.服务器网卡接受到请求后转交给内核处理:3.内核根据请求对应的套接字,将请求交给工作在用户空间的Web服务器进程4.Web服务器进程根据用户 ...
- ANTS Performance Profiler 8:支持对Web请求、异步代码和WinRT的性能剖析
下载与激活:http://download.csdn.net/detail/lone112/6734291 离线激活 位于英国的Red Gate Software有限公司最近发布了ANTS Per ...
- Springboot中使用AOP统一处理Web请求日志
title: Springboot中使用AOP统一处理Web请求日志 date: 2017-04-26 16:30:48 tags: ['Spring Boot','AOP'] categories: ...
- 与JavaWeb有关的故事(web请求与Java I/O)
作为一名后端屌丝程序员,对算法.并发.性能乐此不疲.但是,随着年龄和阅历的增加,显然叶落而不知秋的心态是不太能混了.尤其是,某T面试官在明知我是后端,且明确表示对HTTP协议不太熟的情况下,强行让我解 ...
随机推荐
- 【剑指offer】58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串 知识点:字符串: 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串 ...
- CRC校验原理
此文为转载文,原作者博客传送门 CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的.其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数( ...
- redis的过期删除策略
一.redis的三种过期策略 1.定时删除在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:保证内存被尽快释放缺点:1)若过期key很多, ...
- 手把手教你玩转HarmonyOS版地图应用开发
一.导读 7月31日,华为HarmonyOS开发者日将在杭州举行.为了方便更多开发者,高德开放平台地图SDK已在业内率先实现鸿蒙化迁移和重构,全面适配HarmonyOS并面向开发者免费发布.开发者可 ...
- 记一次jenkins svn构建过程
本文主要参考:maven实战第11章Hudson持续集成 安装Hudson,Hudson插件下载不了,尝试结果未果,转而使用Jenkins 放入tomcat的webapp目录,在bin下点击start ...
- OpenFaaS实战之七:java11模板解析
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- vulnhub-靶机Lampiao
目标信息:攻击机IP地址:192.1681.10 Lampiao靶机IP地址:192.168.1.12 DC-1靶机IP地址:192.168.1.7 目的:获取靶机root权限和靶机设置的所有flag ...
- flink clickhouse-jdbc和flink-connector 写入数据到clickhouse因为jar包冲突导致的60 seconds.Please check if the requested resources are available in the YARN cluster和Could not resolve ResourceManager address akka报错血案
一.问题现象,使用flink on yarn 模式,写入数据到clickhouse,但是在yarn 集群充足的情况下一直报:Deployment took more than 60 seconds. ...
- XV6学习笔记(1) : 启动与加载
XV6学习笔记(1) 1. 启动与加载 首先我们先来分析pc的启动.其实这个都是老生常谈了,但是还是很重要的(也不知道面试官考不考这玩意), 1. 启动的第一件事-bios 首先启动的第一件事就是运行 ...
- MySQL学习03(MySQL数据管理)
MySQL数据管理 外键 外键概念 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主 ...