书到用时方恨少~网络原理面试参考

Posted 可乐好哇!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了书到用时方恨少~网络原理面试参考相关的知识,希望对你有一定的参考价值。

客户端与服务器:

  • 客户端主动发送请求(request),服务器被动接受请求并作出响应(response)
  • 通信方式:一问一答、多问多答、一问多答

协议

  • 两个不同的程序,互相理解请求或响应内容的含义,相当于制定一致的规则

TCP/IP 五层结构(TCP/IP协议栈):

应用层代码中约定两台主机之间传输数据的格式
传输层不考虑传输的中间过程,只考虑起点和终点如何进行传输
网络层比较远的两台主机,怎么一步一步把数据传过去
传输层数据链路层相邻主机之间的通信
物理层物理设施,网线、光纤、电磁波等

http协议是应用层协议是典型的“一问一答”工作模式

URL:https://gitee.com/kelehaowa 平时说的网址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4j3EVdT-1631186638718)(/Users/cola/Library/Application Support/typora-user-images/image-20210909105632998.png)]

  • 域名通过DNS机制自动转成IP地址(好处是方便用户好记)
    1. http服务器通常部署在80端口
    2. https服务器通常部署在443端口
  • URL小结:
    • IP地址:服务器在哪
    • 端口号:服务器上的哪个程序
    • 带层次的路径:这个服务器上的哪个资源
    • 查询字符串(query string):资源里面的一些细节内容

http协议具体的格式

HTTP请求:

  • 首行(请求行):方法,URL,版本号
  • 请求报头(header):键值对 冒号空格分割
  • 空行:header的结束标记
  • 请求正文(body)-- 正文可以省略

HTTP响应:

  • 首行(状态行):版本号,状态码,状态码的描述
  • 响应报头(header)
  • 空行
  • 响应正文(body)-- 正文可以省略

请求最常用的就是get 和 post

  • get方法一般用于“从服务器获取数据”
  • post方法一般用于“往服务器上提交数据”

请求头:

  • 空行:相当于请求头的结束标记
  • 请求正文(body):
    1. 对http的get请求来说,一般没有body,可以有query string,也可以没有
    2. 对于http的post请求来说,一般是有body,一般是没query string,需要提交给服务器的信息都是放到body(正文)部分中的

常用的状态码:

  • 200 OK 访问成功
  • 404 Not Found 要访问的资源没找到
  • 403 Forbidden 要访问的资源,没有权限
  • 500 Internal Server Error 服务器挂了
  • 302 Move temporarily 重定向

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zh0qGZRQ-1631186638719)(/Users/cola/Library/Application Support/typora-user-images/image-20210909130025848.png)]

http协议的核心内容:浏览器按照这样的格式构造一个字符串,发送给服务器,相当于“发送一个http请求”;

服务器也是构造一个符合这种格式的字符串,返回给浏览器,相当于“返回了一个http的响应”

get 和 post的区别:本质上两者没有区别,实现的场景差不多一样;

  1. get一般把用户自定义的数据放到query string,pget一般没有body

    post一般把用户自定义的数据放到body,post一般有body

  2. get一般设计成“幂等的”

    post设计的时候不必考虑“幂等”

  3. get请求可以被缓存

    post请求一般不可以被缓存

  4. get请求可以被浏览器收藏夹保存起来

    post请求,不能被收藏夹保存(保存的时候,body部分就没了)

cookie:

  • 它是一个字符串,键值对结构的字符串,在浏览器里面保存着(每个域名/地址下都有自己的Cookie)

  • cookie的内容来自于服务器

    • http响应中,有一个或多个set-cookie字段,里面的内容就会被浏览器保存下来
  • cookie会在下次请求的时候自动

    • 浏览器保存好服务器返回的cookie之后,如果下次再访问这个服务器,此时请求中就会自动加上cookie这个字段,字段里面的值就是之前从服务器这边返回的值
  • cookie应用场景:用户身份

    服务器同一时刻会收到大量的http请求,这些请求分别都是来自于哪个用户,服务器必须要明确的识别出来

session 和 cookie的区别:

  • cookie是客户端的概念
  • session是服务器的概念

Https

  1. http是明文传输,特别危险
  2. https是基于http引入了一套加密方案

以上是关于书到用时方恨少~网络原理面试参考的主要内容,如果未能解决你的问题,请参考以下文章

书到用时方恨少~网络原理面试参考

书到用时方恨少

书到用时方恨少,一大波JS开发工具函数来了

一道python面试题引发的血案

扭转弹簧使用范围及其原理的解析

深入理解JVM - 阶段总结与回顾