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.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调 ...
随机推荐
- 使用matplotlib.pyplot中plot()绘制折线图
1.函数形式 plt.plot(x, y, format_string, **kwargs) x轴数据,y轴数据,format_string控制曲线的格式字串(format_string 由颜色字符, ...
- Python 从入门到进阶之路(四)
之前的文章我们简单介绍了一下 Python 的几种变量类型,本篇文章我们来看一下 Python 中的函数. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性, ...
- Idea2019激活码
此教程仅用作个人学习,请勿用于商业获利,造成后果自负!!! 此教程已支持最新2019.2版本 此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: idea官网下载地址:http:/ ...
- CSAPP lab1——位运算
本次为一次计算机系统实验,就是使用一些基本的运算符来实现函数功能. ps做这些题让我想起大一上学期刚学二进制时被鹏哥支配的痛苦. 知识准备: 1.负数等于正数取反加一. 2.左移一位相当于将这个数扩大 ...
- Kubernetes的三种探针
k8s支持存活livenessProbe和就绪readinessProbe两种探针 两种探针都支持以下三种方式 1.exec 通过执行shell命令的方式,判断退出状态码是否是0 示例 exec: c ...
- C#Winform窗体利用单例子窗体传值父窗体
简述:最近在做C#和HALCON编程,要用到单例的参数由子窗体改变父窗体的值.此例为简化版 1,点击系统设置 2,弹出子窗体,在其输入修改参数后点修改按钮 3,点击确定按钮后,关闭子窗体后,主窗体te ...
- Selenium(十一):设置元素等待、上传文件、下载文件
1. 设置元素等待 前面我们接触了几个元素等待方法,sleep.implicitly_wait方法,这一章我们就来整体学一下. 现在大多数Web应用程序使用的都是AJAX技术.当浏览器加载页面时,页面 ...
- Typescript使用字符串联合类型代替枚举类型
TypeScript宗旨 我觉得Typescript的宗旨是 任何一个 TypeScript 程序,在手动删去类型部分,将后缀改成 .js 后,都应能够正常运行.Typescript是javascri ...
- 【JDBC】C3P0连接池的使用
C3P0连接池的c3p0-config.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <c3p ...
- 转战物联网·基础篇09-选择MQTT协议还是CoAP协议
前面章节介绍过,MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境. XMPP协议也有人说是适合物联网通信的,但它是基于XML, ...