HTTP面试常见题
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面试常见题的更多相关文章
- python基础面试常见题
1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一 ...
- jvm面试常见题
背景:jvm相关题目面试必问,后面要深入的进行总结. JVM 面试知识整理 jvm调优命令 调优工具 Minor GC ,Full GC 触发条件 Minor GC触发条件:当Eden区满时,触发Mi ...
- C#面试常见题
1. 简述 private. protected. public. internal 修饰符的访问权限. 答: private : 私有成员, 在类的内部才可以访问. protected : 保护成员 ...
- iOS面试常见题
1.耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13个人围坐一圈,从第一个人開始循环报数,数到三排除,最后剩下的人就是叛徒 int people[13] = {1,2,3, ...
- 大型软件公司.Net面试常见题(含答案)
1.a=10,b=15,在不用第三方变量的前提下,吧a.b互换 2.已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组 3.请简述面向对象的多态的 ...
- LeetCode面试常见100题( TOP 100 Liked Questions)
LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...
- Linux运维跳槽必备的40道面试精华题(转)
Linux运维跳槽必备的40道面试精华题(转) 下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家年后跳槽找个高薪好工作. 1.什么是运维?什么是游戏运维? 1)运维 ...
- Linux运维跳槽40道面试精华题
Linux运维跳槽40道面试精华题 运维派 3天前 1.什么是运维?什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护 ...
- 数据结构+算法面试100题~~~摘自CSDN
数据结构+算法面试100题~~~摘自CSDN,作者July 1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调 ...
随机推荐
- 软件测试价值提升之路- 第二章"价值实现的起点"读书笔记
价值实现的起点 2.1 打破常规 打破哪些已经不适应现在软件开发需要的“准则”,明确需要在什么样的环境下.瞄准什么目标来实现测试的价值 找风险:研发内部测试 测试最基础的是找bug,但需要根据风险找最 ...
- PAT 1011 World Cup Betting 查找元素
With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...
- (转)格拉布斯准则(Grubbs Criterion)处理数据异常
格拉布斯准则:https://baike.baidu.com/item/%E6%A0%BC%E6%8B%89%E5%B8%83%E6%96%AF%E5%87%86%E5%88%99/3909586 G ...
- PlayJava Day017
今日所学: /* 2019.08.19开始学习,此为补档. */ 1.数组变量 a.数组变量是数组的管理者而非数组本身 b.数组必须创建出来然后交给数组变量来管理 c.数组变量之间的赋值是管理权限的赋 ...
- Beyond Compare 4.X 破解方法(亲测有效)
Windows下Beyond Compare 4 30天评估到期了的话,可以尝试下面两种方式: 破解方式把Beyond Compare 4安装文件夹下面的BCUnrar.dll文件删掉就行了,但是这种 ...
- 7.智能快递柜(APP及微信公众号)
1.智能快递柜(开篇) 2.智能快递柜(终端篇) 3.智能快递柜(通信篇-HTTP) 4.智能快递柜(通信篇-SOCKET) 5.智能快递柜(通信篇-Server程序) 6.智能快递柜(平台篇) 7. ...
- ckeditor5 使用第一天 下载并加载居中,居左,居右功能
官方网站地址https://ckeditor.com/,下载zip包或者从git上下载, 下载完成后解压文件,将文件复制到项目中 , 引用ckeditor.js,zh-cn.js路径到项目中, 初始化 ...
- 【三】Gradle中的Task
gradle中,最经常被使用的,一个task,一个是dependencies 1.Task声明 task默认是DefaultTask类, Task中有两个属性 group description,最佳 ...
- electron打包出现有文件下载不全的情况
1.根据提示下载相应的东西 https://blog.csdn.net/az44yao/article/details/85242442 具体可以看这个链接 2.有个小坑,如果到了按照链接1的过程,遇 ...
- 转载一篇:Django静态文件
静态文件: 项目中的CSS.图片.js都是静态文件.一般会将静态文件放到一 个单独的目录中,以方便管理.在html页面中调用时,也需要指 定静态文件的路径,Django中提供了一种解析的方式配置静态文 ...