zoukankan      html  css  js  c++  java
  • 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)将渲染好的页面图像显示出来,并开始响应用户操作。

  • 相关阅读:
    关于全景漫游
    webgl圈中物体
    css3の极限
    reactjs弹幕视频播放
    数值积分I
    显出你的h5逼格
    奇葩のbeforeunload
    面试问题搜集及解析
    TCP拥塞控制(滑动窗口机制)
    如何使CPU占用率为50%
  • 原文地址:https://www.cnblogs.com/HuiH/p/11772958.html
Copyright © 2011-2022 走看看