网络

一、get 和 post 的区别?

  1. get 和 post 都是 HTTP 协议中的两种发送请求的方法。底层都是 TCP 链接。
  2. http 报文层面:get 是把数据放在 url 中,而 post 将数据放在请求体中。
  3. 数据库层面:get 符合幂等性(幂等性:对数据库的一次操作和多次操作的结果都是一致的)和安全性(对数据库的操作没有改变数据库的数据),因为get 请求一般用于做查询操作;post 不符合幂等性和安全性(post 一般是作用在上一级 url 上的,每次请求都会添加一份新资源,因此不符合幂等)post 一般是往数据库提交数据改变数据库,不符合安全性
  4. get 请求携带参数有限,post 可以携带更多数据;
  5. get 可以被缓存、被存储(会保存在浏览器的浏览记录中,url 可以保存为浏览器书签),而 post 不行。
  6. get 产生一个 TCP 数据包,post 产生两个 TCP 数据包。对于 get 请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据);而对于 post,浏览器先发送 header,服务器响应 100,然后浏览器再发送 data,服务器响应 200 ok(返回数据)。但是并不是所有的浏览器都会在 post 中发送两次包,Firefox 只发送一次。

二、详解 http 协议

关于HTTP协议,一篇就够了

三、在浏览器地址栏键入URL,按下回车之后经历的流程

  1. 浏览器查询 DNS 服务器解析出该域名对应的 ip 地址
  2. 浏览器根据解析出的 ip 地址和默认的端口号(80)与服务器建立一个 TCP 连接
  3. 浏览器向服务器发起 http 请求
  4. 服务器对该请求做出响应并把对应带有 html 文本的 http 响应报文发送给浏览器
  5. 浏览器收到 html 并渲染在页面上
  6. 浏览器释放 TCP 连接

四、http 的状态码

  • 五种可能的取值:
  1. 1xx:指示信息:表示请求已接收,继续处理
  2. 2xx:成功:表示请求已经被成功接收、理解、接受
  3. 3xx:重定向:要完成请求必须进行进一步操作
  4. 4xx:客户端错误:请求有语法错误或请求无法实现
  5. 5xx:服务器端错误:服务器未能实现合法的请求
  • 常见状态码:
    200 ok:成功
    400 Bad Request:客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
    403 Forbidden:服务器收到请求,但是拒绝提供服务。比如:IP 被禁了
    404 Not Found:请求资源不存在。比如:输入了错误的 URL
    500 Internal Server Error:服务器发生不可预期的错误
    503 Server Unavailable:服务器当前不能处理客户端的额请求,一段时间后可能恢复正常

五、Cookie 和 Session 的区别

HTTP 本身是无连接,正常我们每次请求数据都要重新建立携带数据连接(如登录),但是这样相当麻烦,因此我们引入了某些机制让 http 具备状态,其中两个便是 cookie,session。

  • cookie简介
  1. cookie 是客户端的解决方案
  2. 是由服务器发起客户端的特殊信息,以文本的形式存放在客户端
  3. 客户端再次请求的时候,会把 cookie 回发
  4. 服务器接收到后,会解析 cookie 生成与客户端相对应的内容
    在这里插入图片描述
  • session 简介
  1. session 是服务端的机制,服务器使用一种类似于散列表的结构在服务器保存信息
  2. 解析客户端请求并操作 session id,按需保存状态信息
  3. 当程序需要为某个客户端创建 session,首先检查客户端请求中是否包含一个 session id,如果已经包含则说明以前已经为这个客户端创建了一个 session,服务器就按照这个 session id 从服务器把这个 session 检索出来使用。如果不包含 session id,则为这个客户端创建一个 session 并生成 session id,并把这个 session id 发送回客户端进行保存。

在这里插入图片描述

  • cookie 和 session 的区别
  1. 存储位置不同:cookie 数据放在客户的浏览器上,session 数据放在服务器上
  2. 存储容量不同:cookie 有大小限制以及浏览器在存 cookie 的个数也有限制,session 是没有上限的,但出于对服务器端的性能考虑,session 内不要存放过多的东西,并且设置 session 删除机制。
  3. 存储方式不同:cookie 只能保管 ASCII 字符串,并需要通过编码方式存储为 Unicode 字符或者二进制数据,session 中能够存储任何类型的数据。
  4. 有效期不同:开发可以设置 cookie 的属性,达到使 cookie 长期有效的效果。
  5. session 依赖于名为 JSESSIONID 的 cookie,而 cookie JSESSIONID 的过期时间默认为 -1,只需要关闭窗口该 session 就会失效,因而 session 不能达到长期有效的效果
  6. 跨域支持上不同:cookie 支持跨域名访问,而 session 不支持。

六、http 中的 keep-alive?

http 协议采用 ”请求-应答“ 模式,当使用普通模式,即非 keep-alive 模式时,每个请求/应答,客户端和服务器都要建立连接,完成之后立即断开连接。当使用 keep-alive 模式(持久化连接)时,keep-alive 功能使客户端和服务器连接持久有效,当出现对服务器后继请求时,keep-alive 功能避免了重新建立连接。

七、服务器上,请求服务的时候,响应速度特别慢,你帮我分析一下?

这种问题,无非四方问题。客户端,网络,服务器硬件,服务器软件。

  1. 排查本地客户端所处的网络是否比较拥塞,可以尝试访问不同的网址来进行验证
  2. 有可能是公司服务器内部网络比较拥塞,可以看看公司的其它服务是否正常对外提供服务。
  3. 服务器硬件,可以查看一下服务器的硬件资源,比如,cpu 是否被打满,带宽是否被打满,内存是否不足,硬盘空间是否被占满而导致系统运行慢。
  4. 服务器软件,看看是否是我们的服务器当前请求过多,服务器满载,服务器是否在处理请求的时候,内部因为 bug 的问题而导致响应慢,服务器内部是否 IO 相关的代码没有优化,导致性能瓶颈之类的。

八、1G内存的服务器存100G的文件该怎么弄?

服务器是否可以有多台,切分存储是否可以,是要把数据真正存储在内存?还是要通过一定的方式,暂存在硬盘,需要的时候,再分批导入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值