浏览器

浅析cookie和session

牧云@^-^@ 提交于 2019-12-05 19:14:30
关于 cookie 和 session 的区别: 通常意义上的 cookie 指的是利用客户端的技术在计算机用户的文件夹下存储的文件,又名硬盘 cookie ,一般来说是有上限的。我的 cookie 是存在 D:\Documents and Settings\qixiaobo\Local Settings\Temporary Internet Files 下面,命名规则是 cookie:[ 用户名 ]@[ 网站 ] ,打开后可发现通常是经过 md5 编码的。并且它的换行符在 windows 识别为乱码,表示服务器应该是 Linux 平台。( windows 换行符是 \r\n 而 Linux 换行符是 \r ) 而 session ,又名内存 cookie ,一般而言是指存放在服务器上的,当用户访问某个网站,网站服务器为用户分配一个 Session ID ,一般的表现形式为 JsessionID ,并且也是以 cookie 的形式存放在客户端,但是他的生命周期就是浏览器进程。也就是说当该浏览器进程被关闭后,重新打开后的浏览器访问同一个网站的分配到的 session ID 将不是同一个 session ID 。当 cookie 被禁用后,编码人员应当考虑到这种情况,应该利用 Java 提供的方法重写每一个链接。因为此时浏览器无法提供 cookie 给服务器,所以按照 HTTP

chromium浏览器开发系列第二篇:如何编译最新chromium源码

懵懂的女人 提交于 2019-12-05 18:40:01
附上上一篇文章地址,方便大家查看: 下载源码 说一下为什么这么晚才发第二篇,上周和这周 department 的工作太多了,晚上都是十点半从公司出发,回家以后实在没有多余的精力去摸键盘了。所以请大家包涵! 上期回顾: chromium源码下载: 1.找个靠谱的vpn(我试过了,网上说的不用vpn拿代码的都不靠谱); 2.获取depot_tools,解压,设置环境变量; 3.gclient获取python和git,svn,设置环境变量; 4.fetch–nohooks chromium –nosvn=true 获取源码; 5.gclientsync --force –nohooks 同步到最新 上边的python和git,也可以通过手动安装,只要环境变量设置好了就可以。 环境配置: 获取代码的最后一步是获取编译环境也就是Visual Studio 2013,上面所有的都成功以后,运行gclient runhooks就会把编译需要的vs2013的文件下载到本地,存储在depot_tools\win_toolchain\vs2013_files路径下,主要文件是编译需要的库文件。 在windows上编译chromium的官网几个说明: 1.你必须把你的windows系统区域设置为英文,否则编译时会发生错误:"The file contains a character that

一些CSS浏览器兼容的处理心得

点点圈 提交于 2019-12-05 17:36:08
仅IE识别: margin-left:10px\9; 仅IE8识别: margin-left:10px\0; IE6/IE7识别: *margin-left:10px; 仅IE6识别: _margin-left:10px; 1、IE6、IE7都支持 *,但IE8终于回归正统,放弃了对*的支持 2、IE7、IE8、Firefox、Opera、Safari都支持 important 3、IE6支持下划线,IE7、IE8和Firefox、Opera、Safari均不支持下划线。 *+html 与 *html 是IE特有的标签, firefox暂不支持。而*+html又为IE7特有标签 注意:*+html 对IE7的HACK 必须保证HTML顶部有如下声明: <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” ”http://www.w3.org/TR/html4/loose.dtd”> !important 提升指定样式规则的应用优先权 background-color:yellow!important; 来源: oschina 链接: https://my.oschina.net/u/103999/blog/68208

浏览器的两种模式quirks mode 和strict mode

試著忘記壹切 提交于 2019-12-05 03:43:06
在看js代码时,有时会看到关于quirks mode(怪异模式)和strict mode(严格格式)的东西,一直也没深究怎么回事,只是零零碎碎的有些概念,最近终于受不了这种似懂非懂的感觉,决定好好学习总结一下。 1、quirks mode和strict mode是浏览器解析css的两种模式,或者可以称之为解析方法。目前正在使用的浏览器这两种模式都支持 。 2、历史原因。 当早期的浏览器Netscape 4和Explorer 4对css进行解析时,并未遵守W3C标准,这时的解析方式就被我们称之为quirks mode(怪异模式),但随着W3C的标准越来越重要,众多的浏览器开始依照W3C标准解析CSS,仿照W3C标准解析CSS的模式我们叫做strict mode(严格模式). 3、后来的浏览器虽然支持strict mode,但众多浏览器并未放弃支持quirks mode。 一个重要的原因就是为了之前大量在quirks mode下开发的网页能够得到正确的显示。所以,这些支持两种模式的浏览器当拿到一张网页时,所做的一个前期工作就是判断采取何种方式进行解析(判断条件后面会说)。注:Explorer 5仍然只支持quirks mode 4、浏览器如何判断何用哪种方式解析CSS? 解决方案就是采用doctype声明,大多数浏览器采用下面的这些 判断规则 浏览器要使老旧的网页正常工作

chromium浏览器开发系列第四篇:如何调试最新chromium源码

三世轮回 提交于 2019-12-04 20:55:00
附上上几篇文章地址,方便大家查看: 下载源码 编译源码 目录结构 接二连三的事情,时间比较紧张,但是还是没有把这个系列的文章丢掉,因为这也是对自己知识的总结吧。提倡大家多写写,以后再看的时候会有种莫名的小激动。 上周写的是 chromium 的目录结构,好像大家不太感兴趣,在我看来这部分很重要。开头有链接地址,大家想看可以再看看。 从源码下载到编译,到目录结构,今天终于到了重要的环节,调试。 在 windows 上,调试工具都是使用微软自家的产品: Visual Studio 或者 winDBG ( windebug )。 Chromium 也是与时俱进,现在主要使用 Visual Studio2013 。我今天主要讲使用 vs2013 调试源码。 我在编译代码那一章( http://my.oschina.net/ghost045/blog/395973 )的时候曾经讲过生成源码工程的东东,如下: set GYP_MSVS_VERSION=2013 set GYP_GENERATORS=msvs-ninja,ninja set GYP_DEFINES=component=shared_library set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\; python.exe src/build/gyp_chromiumsrc

杂谈:渐进增强与优雅降级

喜夏-厌秋 提交于 2019-12-04 17:41:39
作为一名前端开发人员,最头疼的莫过于浏览器兼容。远古时期万恶的IE6,到现在CSS3不兼容的IE7/8.为了保证不同版本浏览器都有共同或更优化的用户体验,前端搬砖的我们不得不与浏览器兼容顽强斗争。而 渐进增强 和 优雅降级 两种不同的开发流程,也是在我们项目初期做调研选型时会考虑的一个点。 渐进增强(Progressive Enhancement) 一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。 优雅降级(graceful degradation) 一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。 初一看这两个概念有点高大上,其实作为开发人员来说,多多少少已经在项目中运用只是你自己不察觉而已。换个词汇就比较好理解了,渐进增强(向上/前兼容),优雅降级(向下兼容),向上兼容高版本浏览器,向下兼容低版本浏览器。 二者区别 渐进增强 和 优雅降级 只是看待同种事物的两种观点。渐进增强和优雅降级都关注于同一网站在不同设备里不同浏览器下的表现程度。关键的区别则在于它们各自关注的着重点不同,以及这种不同的关注点如何影响项目开发的流程。 优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站

转发以及重定向解析

会有一股神秘感。 提交于 2019-12-02 23:03:54
转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.sendRedirect 方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源。如果传递给HttpServletResponse.sendRedirect 方法的相对URL以“/”开头,它是相对于整个WEB站点的根目录;如果创建RequestDispatcher对象时指定的相对URL以“/”开头,它是相对于当前WEB应用程序的根目录。、 2、调用HttpServletResponse.sendRedirect方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而调用RequestDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。 3、HttpServletResponse.sendRedirect方法对浏览器的请求直接作出响应

Android 浅谈HttpClient工具类

◇◆丶佛笑我妖孽 提交于 2019-12-01 16:11:17
在 Android开发 中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的 HttpClient 来方便我们使用各种Http服务。你可以把 HttpClient 想象成一个浏览器,通过它的API我们可以很方便的发出GET,POST请求(当然它的功能远不止这些)。   比如你只需以下几行代码就能发出一个简单的GET请求并打印响应结果: java代码: try { // 创建一个默认的HttpClient HttpClient httpclient = new DefaultHttpClient(); // 创建一个GET请求 HttpGet request = new HttpGet("www.google.com"); // 发送GET请求,并将响应内容转换成字符串 String response = httpclient.execute(request, new BasicResponseHandler()); Log.v("response text", response); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 复制代码

jQuery下通过$.browser来判断浏览器

僤鯓⒐⒋嵵緔 提交于 2019-12-01 12:15:18
$.browser.['浏览器关键字'] $(function(){ if($.browser.msie) { alert("this is msie"); }else if($.browser.safari){ alert("this is safari!"); }else if($.browser.mozilla){ alert("this is mozilla!"); }else if($.browser.opera) { alert("this is opera"); }else{ alert("i don't konw!"); } }); 看一下jQuery的源码: var userAgent = navigator.userAgent.toLowerCase(); // Figure out what browser is being used jQuery.browser = { version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1], safari: /webkit/.test( userAgent ), opera: /opera/.test( userAgent ), msie: /msie/.test( userAgent ) && !/opera/.test(

科普:关于浏览器内核的一些小知识

纵然是瞬间 提交于 2019-11-30 21:30:27
浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知。今天就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西。 在下面的文章中主要介绍一些常见的浏览器内核和JavaScript引擎,部分内容来自于我在网上找到的资料,还有一些是我自己的理解,不保证完全正确,但是大致应该是没错的。如果有误,请指正…… 一、浏览器内核 (排版引擎/渲染引擎) 首先解释一下浏览器内核是什么东西。英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核,至于为什么流行这么称呼,请自行领悟。 Rendering Engine,顾名思义,就是用来渲染网页内容的,将网页的代码转换为最终你看得见的页面。因为是排版,所以肯定会排版错位等问题。为什么会排版错位呢?有的是由于网站本身编写不规范,有的是由于浏览器本身的渲染不标准。 现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE内核、Chrome内核。其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。下面罗列一下几款主流的排版引擎和浏览器。 1、Trident 内核(Windows)