/**
1、HTTP以及HTTPS概念
HTTP是超文本传输协议,是一个用于传输超媒体文档的应用层协议,被用于在web浏览器和网站服务器之间,以明文方式传递信息,
不提供任何方式的饿数据加密,因此使用http传输隐私信息非常不安全; 为了解决这一安全缺陷,网景公司设计了SSL协议,在http基础上加入ssl协议,依靠证书来验证服务器的身份,并为
浏览器和服务器之间的通信进行加密,从而产生了HTTPS;
**/ /**
2、HTTP状态码有哪些? HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。
响应分为五类:
信息响应(100–199);
成功响应(200–299);
重定向(300–399);
客户端错误(400–499);
服务器错误 (500–599); 常用的有:
200(ok) 请求成功
404(Not Found) 服务器找不到请求的网页
405(禁用) 禁用请求中指定的方法
408(请求超时) 服务器等候请求时发生超时
500(服务器错误) 服务器内部错误 服务器遇到错误,无法完成请求
504(服务器网关超时) 当服务器作为网关,不能及时得到响应时返回此错误代码。
**/ /**
2、HTTP与HTTPS有什么区别? HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息
a、HTTPS协议需要到CA申请证书,需要花钱买;
b、HTTP协议 = TCP,HTTPS协议 = TCP+SSL;
c、HTTP信息是明文传输,HTTPS是加密传输;
d、HTTP的url以http://开头,HTTPS的url以https://开头
e、HTTP的端口为80,HTTPS的端口为443;
**/ /**
3、浏览器存储方式有哪些?
a、cookie: 一般由服务器生成,可以设置过期时间,数据存储大概4k,,每次会携带在header中,对弈请求性能影响;
b、session
c、localStorage:除非被清理,否则一直存在,数据存储大概5M
d、sessionStorage:页面关闭就清理,数据存储大概5M 注意: localStorage和sessionStorage自带getItem和setItem,只能存取字符串,存取JSON数据需配合JSON.stringify()和JSON.parse();
遇见禁用setItem的浏览器,需要使用try...catch捕获异常; cookie和session的区别:
1、存在的位置:cookie是存储在客户端,session是存储在服务器端;
2、cookie是以明文的方式放在客户端的,安全性低,可以通过一个加密算发进行加密后存放,
session存放于服务器的内存中,所以安全性性好;
3、cookie为多个用户浏览器共享,session为一个用户浏览器独享; **/ /**
4、地址栏输入url后会发生什么? 1、DNS域名解析(解析成ip地址,走UTP协议,因此不会握手过程):
浏览器将 URL 解析出相对应的服务器的 IP 地址(
1. 本地浏览器的 DNS 缓存中查找
2. 再向系统DNS缓存发送查询请求
3. 再向路由器DNS缓存
4. 网络运营商DNS缓存
5. 递归搜索),
并从 url 中解析出端口号
2、浏览器与目标服务器建立一条 TCP 连接(三次握手)
3、浏览器向服务器发送一条 HTTP 请求报文
4、服务器返回给浏览器一条 HTTP 响应报文
5、浏览器进行渲染
6、关闭 TCP 连接(四次挥手) **/ /**
5、页面渲染优化? 1、HTML文档结构层次尽量少,最好不深于6层;
2、脚本尽量放后边,避免阻止页面加载;
3、少量首屏样式可以放在便签内;
4、样式结构层次尽量简单;
5、脚本减少DOM操作,减少回流,尽量缓存访问DOM的样式信息;
6、尽量减少JS修改样式,可以通过修改class名的方式解决;
7、减少DOM查找,缓存DOM查找结果;
8、动画在屏幕外活页面滚动时,尽量停止; **/ /**
6、get和post的区别? 1、get参数通过url传递,post放在body中(http协议规定,url在请求头中,所以大小限制很小);
2、get相比post不够安全,因为参数直接暴露在url中,所以不能用来传递敏感信息;
3、get在浏览器回退时是无害的,而post会再次提交请求;
4、对参数的数据类型,get只接受ASCII字符,而POST没有限制; **/

面试必问之http以及浏览器相关知识的更多相关文章

  1. linux驱动工程面试必问知识点

    linux内核原理面试必问(由易到难) 简单型 1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? 2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化, ...

  2. 互联网公司面试必问的Redis题目

    Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用到.Redis相关的问题可以说是面试必问的,下面我从个人当面试官的经验,总结几个必须要掌握的知识点. 介绍:Redi ...

  3. 互联网公司面试必问的mysql题目(下)

    这是mysql系列的下篇,上篇文章地址我附在文末. 什么是数据库索引?索引有哪几种类型?什么是最左前缀原则?索引算法有哪些?有什么区别? 索引是对数据库表中一列或多列的值进行排序的一种结构.一个非常恰 ...

  4. 面试必问:JVM类加载机制详细解析

    前言 在Java面试中,简历上有写JVM(Java虚拟机)相关的东西,JVM的类加载机制基本是面试必问的知识点. 类的加载和卸载 JVM是虚拟机的一种,它的指令集语言是字节码,字节码构成的文件是cla ...

  5. 一线大厂Java面试必问的2大类Tomcat调优

    一.前言 最近整理了 Tomcat 调优这块,基本上面试必问,于是就花了点时间去搜集一下 Tomcat 调优都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍 ...

  6. 高级测试工程师面试必问面试基础整理——python基础(一)(首发公众号:子安之路)

    现在深圳市场行情,高级测试工程师因为都需要对编程语言有较高的要求,但是大部分又没有python笔试机试题,所以面试必问python基础,这里我整理一下python基本概念,陆续收集到面试中python ...

  7. Java面试必问之Hashmap底层实现原理(JDK1.7)

    1. 前言 Hashmap可以说是Java面试必问的,一般的面试题会问: Hashmap有哪些特性? Hashmap底层实现原理(get\put\resize) Hashmap怎么解决hash冲突? ...

  8. 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别

    [面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...

  9. 互联网公司面试必问的mysql题目(上)

    又到了招聘的旺季,被要求准备些社招.校招的题库.(如果你是应届生,尤其是东北的某大学,绝对福利哦) 介绍:MySQL是一个关系型数据库管理系统,目前属于 Oracle 旗下产品.虽然单机性能比不上or ...

随机推荐

  1. MVC 中引用Angularjs

    首先在Maname NuGet Packages中 安装相应的包,我用的是作者为 AngualrJS Team的 随后在相应的Scripts中会出现对应文件. 如果只在某一个页面中使用Angualrj ...

  2. VUE- Cordova打包APP

    VUE- Cordova打包APP 现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题.现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android ...

  3. 五、React事件方法(自写一个方法(函数),然后用按钮onClick触发它、自写方法改变this指向3种写法、

    上接:https://www.cnblogs.com/chenxi188/p/11782349.html 项目目录: my-app/ README.md node_modules/ package.j ...

  4. 配置mysql时报错

    配置mysql时无法启动此程序,因为计算机丢失MSVCR100.dll. 去https://cn.dll-files.com/下载相应的版本 复制MSVCR100.dll 粘贴到下面 32位系统: 复 ...

  5. java的形参与实参的区别以及java的方法

    package com.lv.study; public class Demo05 { public static void main(String[] args) { //我想要用什么分隔符进行分隔 ...

  6. html语一化/块/行级元素

    html文件不区分大小写.//vue项目中组件名字驼峰 使用时候却全部小写 说明不区分 html语义化的意思, 就是标签名带有一定含义和一些css样式.比如h1-h6是标题 自动放大变粗,img是图片 ...

  7. Vuex基本介绍

    1.什么是Vuex Vuex是一个专为vue.js应用程序开发的状态管理模式. 状态管理:data里面的变量都是vue的状态. 2.为什么要用Vuex 当我们构建一个中大型的单页面应用程序时,Vuex ...

  8. List列表删除值为指定字段

    需要处理一个场景,当值为某一个固定值或者为空的时候,删除列表中的这个值. ;i<list.size();i++){ if(list.get(i).equals("del")) ...

  9. 17. react redux的中间件

    1. redux 数据流程图 View 会派发一个 Action Action 通过 Dispatch 方法派发给 Store Store 接收到 Action 连同之前的 State 发给  Red ...

  10. 尝试用kotlin做一个app(四)

    本来是应该为主页加载数据库数据了,但是想着做后台,之前写jsp后台写吐了,所以先拖几天.把之前的代码完善一下,或者添加些新内容. ...... 多个fragment切换卡顿 首先修正一个bug.从主页 ...