1.HTTP2.0、1.1、1.0、0.9的区别?

  答:HTTP0.9:是HTTP协议的第一个版本,只允许发送get请求,并且不支持请求头。一次请求对应一次响应。是短连接。

    HTTP1.0:相比于0.9增加了:1)请求与响应支持头域(支持请求头);2)响应对象以一个响应状态行开始;3)响应对象不只局限于超文本;4)开始支持客户端通过post方法向web服务器提交数据,支持GET、HEAD、POST方法;5)支持长连接(但是默认还是使用短连接)

    HTTP1.1:加入了keeplive连接,允许在事务处理结束后TCP连接一直保存一种打开状态,即支持长连接,并且加入了缓存。

    HTTP2.0:多路复用,会将传输的信息分割成小的信息和帧,降低延迟,提高吞吐量。并且可以终端TCP连接。

2.HTTP中GET和POST的区别?

  答:从原理上,根据HTTP规范,GET用于信息获取,而且应该是安全和幂等的(安全的意味着该操作用于获取信息而非修改信息;幂等的意味着对于同一URL的多个请求应该返回同样的结果);根据HTTP规范,post表示可能修改服务器上资源的请求。

    从表面上,GET请求的数据会附在URL后,post的数据放在HTTP包体。

  总结:1)GET是从服务器上获取资源,post是向服务器发送资源;

     2)GET传输数据是通过URL请求,以id=value的形式置于URL后,并用?连接,多个请求数据间用&连接,这个过程是用户可见的。post传输数据是利用HTTP的post机制,将字段和对应的值封装存在请求实体中发送给服务器,这个过程用户是不可见的。

     3)GET传输因受url长度的限制,因此它传输的数据量小,但效率高;post可以传输大量数据,所以上传文件时只能用post方法。

     4)GET是不安全的,因为url是可见的,可能泄露私密信息;post较GET安全性高,因为参数不会保存在浏览器历史或web服务器缓存中。

     5)GET方法只支持ASCLL字符,向服务器传的中文字符可能会乱码;post支持标准字符集,可以传递中文字符。

3.一次HTTP请求从请求到返回的过程(访问一个url都经历了哪些事情)

  答:1)把URL分割成几个部分:协议、网络地址、资源路径。其中协议是从该计算机获取资源的方式,常见的是HTTP、FTP;网络地址指示该网络上哪一台计算机,可以实域名或IP地址;资源路径指示从服务器上获取哪一项资源。例如:http://www.baidu.com/index.jsp/  协议为http,网络地址为www.baidu.com,资源路径为index.jsp

    2)如果地址不是一个IP地址,通过DNS(域名系统)将该地址解析成IP地址。IP地址对应着网络上一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP。

    3)如果地址不包含端口号,根据协议的默认端口号确定一个。例如:www.guoke.com不包含端口号,HTTP协议的默认端口号为80。

    4)向2)和3)确定的IP和端口号发起网络连接。

    5)根据HTTP协议要求,组织一个请求的数据包,里面包含大量请求信息,包含请求的资源路径、你的身份等。

    6)服务器响应请求,将数据返回给浏览器。

    7)如果6)返回的是一个页面,根据页面里一些外链的URL,例如图片的地址,按照1)-6)再次获取。

    8)开始根据资源的类型,将资源组织成屏幕上显示的图像,这个过程叫做渲染。

    9)将渲染好的页面图像显示出来,并开始响应用户操作。

HTTP面试常见题的更多相关文章

  1. python基础面试常见题

    1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一 ...

  2. jvm面试常见题

    背景:jvm相关题目面试必问,后面要深入的进行总结. JVM 面试知识整理 jvm调优命令 调优工具 Minor GC ,Full GC 触发条件 Minor GC触发条件:当Eden区满时,触发Mi ...

  3. C#面试常见题

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答: private : 私有成员, 在类的内部才可以访问. protected : 保护成员 ...

  4. iOS面试常见题

    1.耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13个人围坐一圈,从第一个人開始循环报数,数到三排除,最后剩下的人就是叛徒 int people[13] = {1,2,3, ...

  5. 大型软件公司.Net面试常见题(含答案)

    1.a=10,b=15,在不用第三方变量的前提下,吧a.b互换 2.已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组 3.请简述面向对象的多态的 ...

  6. LeetCode面试常见100题( TOP 100 Liked Questions)

    LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...

  7. Linux运维跳槽必备的40道面试精华题(转)

    Linux运维跳槽必备的40道面试精华题(转)   下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家年后跳槽找个高薪好工作. 1.什么是运维?什么是游戏运维? 1)运维 ...

  8. Linux运维跳槽40道面试精华题

    Linux运维跳槽40道面试精华题 运维派 3天前 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护 ...

  9. 数据结构+算法面试100题~~~摘自CSDN

    数据结构+算法面试100题~~~摘自CSDN,作者July 1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调 ...

随机推荐

  1. 【Java基础】正则表达式

    目录 正则表达式 什么正则表达式 普通字符 预定义字符 特殊字符 数量限定字符 定位字符 选择符和分组 反向引用 预搜索 运算符的优先级 常用正则 附录 正则表达式 本文的大部分内容转载自正则表达式从 ...

  2. Java变量在内存中的存储

    目录 Java变量在内存中的存储 成员变量 局部变量 总结 Java变量在内存中的存储 以下探究成员变量和局部变量在内存中的存储情况. package com.my.pac04; /** * @aut ...

  3. PlayJava Day013

    今日所学: /* 2019.08.19开始学习,此为补档. */ 1.BufferedImage:是Image的一个子类,两者的主要作用就是将一副图片加载到内存中,即图像缓冲区. 对于本地图片: Fi ...

  4. MySQL学习——管理事务

    MySQL学习——管理事务 摘要:本文主要学习了使用DCL语句管理事务的操作. 了解事务 什么是事务 事务是一组逻辑处理单位,可以是执行一条SQL语句,也可以是执行几个SQL语句. 事务用来保证数据由 ...

  5. 搜索某个目录下所有jar包中的mapper目录下的xml文件

    rm -rf /mapper/* find /data/app/app-*/lib ! -path "*xnpush*" ! -path "*portal*" ...

  6. 前vue.js+elementui,后koa2,nodejs搭建网站

    1,安装 nodejs,npm 2,使用 npm 安装 vue,vue-cli 3,使用脚手架搭建项目,添加依赖:axios,vue-router,elementui,vuex 等 4,建立 rout ...

  7. 【转载】从使用到原理学习Java线程池

    线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源.在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收. 所 ...

  8. 验证登录的前世今生:session、cookie

    参考地址:彻底理解cookie,session,token 使用JSON Web Token设计单点登录系统 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录 ...

  9. LeetCode 5273. 搜索推荐系统 Search Suggestions System

    地址 https://leetcode-cn.com/problems/search-suggestions-system/ 题目描述给你一个产品数组 products 和一个字符串 searchWo ...

  10. layUI学习第四日:layUI布局系列一

    1.栅格布局规则 1.1 layui-row定义行,如:<div class="layui-row"></div> 1.2 layui-col-md*这样的 ...