美文网首页
计算机网络面试题

计算机网络面试题

作者: 红茶玛奇朵鸭 | 来源:发表于2019-08-16 22:12 被阅读0次

    文章的目的主要是针对面试官的提问,做出尽可能精简而全面的回答。若读者对某块的知识不能太理解,还请参阅其他大佬比较详细的博客或者专业书籍,谢谢大家。


    一、TCP与UDP的区别

    二、TCP三次握手与四次挥手

    三、为什么要三次挥手,两次行不行

    四、为什么客户端最后还需要等待2*MSL

    五、为什么建立连接时是三次握手,而释放连接时是四次挥手

    六、如果建立了连接客户端出现了故障

    七、TCP协议如何保证传输的可靠性

    八、HTTP请求/响应报文结构

    HTTP请求报文结构:

    一个HTTP请求报文由四个部分组成:请求行、请求头部、空行和请求数据。

    1.请求行:由请求方法字段、URL字段和HTTP协议版本字段三个字段组成,它们用空格分隔。

    2.请求头部:

    3.空行:作用就是通过一个空行告诉服务器请求头部到此为止。

    4.请求数据:如果方法字段为GET,则此项为空,没有数据。方法字段为POST,此处放置的就是要提交的数据。

    HTTP请求报文结构 HTTP请求报文

    HTTP响应报文结构:

    1.响应行:由协议版本、状态码和状态码描述三个字段组成,之间用空格隔开。

    2.响应头部:

    3.空行:作用就是通过一个空行告诉客户端响应头部到此为止。

    4.响应数据(正文):

    HTTP响应报文

    九、HTTP协议状态码

    状态码的类别

    十、URL与URI的区别

    URL:(Uniform/Universal Resource Locator 的缩写,统一资源定位符)。

    URI:(Uniform Resource Identifier 的缩写,统一资源标识符)(代表一种标准)。

            URI 属于 URL 更高层次的抽象,一种字符串文本标准。就是说,URI 属于父类,而 URL 属于 URI 的子类。URL 是 URI 的一个子集。二者的区别在于,URI 表示请求服务器的路径,定义这么一个资源。而 URL 同时说明要如何访问这个资源(http://)

    十一、HTTP请求方法

    这里仅列出HTTP1.1所支持的方法

    1.GET:请求资源。请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。

    2.POST:传输实体主体。(虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法。虽说 POST 的功能与 GET 很相似,但POST 的主要目的并不是获取响应的主体内容。)

    3.HEAD:获取报文首部。HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认URI 的有效性及资源更新的日期时间等。

    4.PUT:传输文件。在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。(鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。)

    5.DELETE:删除文件。DELETE 方法用来删除文件,是与 PUT 相反的方法。DELETE 方法按请求 URI 删除指定的资源。(但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制,所以一般的 Web 网站也不使用 DELETE 方法。)

    6.OPTIONS:询问支持的方法。OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

    (7和8比较难理解)

    7.TRACE:追踪路径。TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方法。(客户端通过 TRACE 方法可以查询发送出去的请求是怎样被加工修改/ 篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理中转,TRACE 方法就是用来确认连接过程中发生的一系列操作。)

    8.CONNECT:要求用隧道协议连接代理。

    十二、GET方法与POST方法的区别

    1.GET方法参数通过URL传递,而post方法参数放在请求体中。

    2.GET方法在URL中传递的参数是有限制的(原则上url 长度无限制,但大多数浏览器通常都会限制url 长度在2k(2048字节byte))),而POST方法理论上没有(实际上IIS4中最大量为80k,IIS5中为100k)。

    3.正是因为参数暴露在URL上,GET方法比POST方法更不安全,因此不能用来传输敏感信息。

    4.GET方法参数会被完整地保留在浏览器历史记录中,而POST方法不会。

    5.GET只接受ASCII 码字符,而POST没有限制。

    6.GET请求只能进行url 编码,而POST支持多种编码方式。

    7.GET产生的URL地址可以被bookmark, POST则不可以。

    8.GET请求会被浏览器主动cache,而POST不会,除非手动设置。

    9.GET在浏览器回退时是无害的,而POST会再次提交请求。

    10.一个重大区别:GET产生一个TCP数据包;POST产生两个TCP数据包。

            对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次)

    十三、HTTP与HTTPS的区别

            HTTP协议运行在TCP之上,明文传输,客户端和服务器都无法验证对方身份。HTTPS是身披SSL外壳的HTTP,运行在SSL之上,SSL运行在TCP之上,是添加了加密与认证机制的HTTP。

            两者不同点:

    1.端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443。

    2.资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源。

    3.开销:Https通信需要证书,而证书一般需要向认证机构购买。

            HTTPS工作原理:

    十四、对称加密与非对称加密

            


    g持续更新!!!!!觉得如果有帮助到你,麻烦评论喜欢加关注哟。

    相关文章

      网友评论

          本文标题:计算机网络面试题

          本文链接:https://www.haomeiwen.com/subject/zfgqsctx.html