Skip to content

Latest commit

 

History

History
159 lines (126 loc) · 5.83 KB

网络编程.md

File metadata and controls

159 lines (126 loc) · 5.83 KB

HTTP请求方式?

查看答案

HTTP请求方式有下面几种

  • GET 用于查询资源
  • POST 用于创建资源
  • PUT 用于修改资源
  • DELETE 用于删除资源
  • HEAD 测试服务器性能
  • CONNECT SSL通信
  • OPTIONS 测试服务器性能
  • TRACE 测试链接

HTTP 的POST与GET区别与联系,实践中如何选择它们?

查看答案
  • POST

提交参数加密 默认最大支持2M文件传输(服务器配置) 通常创建 修改 删除资源用POST请求

  • GET

提交参数可见 最大支持参数1024K大小。支持缓存,所以平时可以来做CND加速。

知道TCP/UDP吗?说说关于UDP/TCP的区别?

查看答案
  • TCP

TCP是面向传输流 传输可靠 不丢包。没有传输大小限制,支持一对一,需要三次握手链接。

  • UDP

面向字节流 传输不可靠 容易丢包。传输大小限制64K,支持一对一,一对一,多对多,不需要握手就可以链接。

什么是三次握手与四次挥手?

查看答案

为了回答这个问题,我们先距离一下。我们通常打电话也会有这样的过程,假设A和B进行打电话。假设必要A代表客户端,B代表后端。 A先问一下B你能听见我说话不,现在A完全不知道自己手机挺到和说话是否正常。B听到之后回复一句,我听到了,你能挺到我说话不。这个时候B确认A说话是正常的,并且自己接受是正常的。A听到之后回复我可以听见,我有事情问你。A听到B的回答确认自己说话正常,并且接受正常。B收到A的回应确认A接受正常,和自己发送正常。

  • 第一次握手

A:你能听见我说话不

  • 第二次握手

B:我听见了,你能听见我说话不

  • 第三次握手

A:听得见,电话没有问题

下面是确认流程状态

  • 第一次握手
  • 客户端 收⚫️ 发⚫️
  • 后端 收✅ 发⚫️
  • 第二次握手
    • 客户端 收✅ 发✅
    • 后端 收✅ 发⚫️
  • 第三次握手
    • 客户端 收✅ 发✅
    • 后端 收✅ 发✅

四次挥手是流程这样的,我们假设还是A和B打电话,准备要结束。A告诉B,我说完这一句就挂掉了,B收到之后告诉A我已经收到。之后发送B最后的回答。A收到B的回答之后告诉B,内容已经收到我挂了。 四次挥手过程

  • 第一次挥手

A:太晚了,注意休息,准备挂了

  • 第二次挥手

B: 好,是太晚了

  • 第三次挥手

B:明天我再给你打电话 挂了吧

  • 第四次挥手

A:明天打 挂了

HTTP和SCOKET通信的区别?

查看答案

HTTP是有客户端发起,链接之后就会关系,服务器不能主动给客户端发送消息。Scoket是基于长连接,链接之后不会断开。客户端可以主动发消息给服务器,服务器也可以主动发消息给客户端。

网络七层协议分别是什么

查看答案

从下到上,分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

什么是HTTTS?

查看答案

HTTPS是安全的HTTP链接,HTTPS就是在HTTP加入了SSL层。

HTTPS链接的过程

查看答案
  • 客户端发起请求到服务器
  • 服务器返回证书给客户端
  • 客户端根据根证书对服务器返回的证书进行验证
  • 客户端根据对称密钥根据服务器证书加密返给服务器
  • 服务器使用私钥对客户端的密钥解密
  • 双方使用密钥进行加密传输

什么是对称加密

查看答案

对称加密就是加密和解密都使用同样的密钥,常用的AES,DES,3DES

非对称加密

查看答案

非对称加密是有一堆密钥 公钥 私钥组成,私钥只能一方掌管。常用的比如RSA

什么是Cookie和Session

查看答案

Cookie是客户端会吧会话的SessionID保存,之后发起请求把回话的SessionID带给服务器。Session是保存会话身份,标识身份是SessionID,服务器可以同Session同过客户端传递的SessionID获取到身份信息.

断点续传如何实现?

查看答案

断点续传的原理是通过控制head中的Range值来做的,关键是需要后台服务器支持Range

什么是WebSocket,解决了什么问题?

查看答案

WebSocket是应用的一层协议,是基于一次握手之后,就通过TCP通道传输,和HTTP没关任何关系。WebSocket是基于Frame传输的,可以将传输数据分为几片Frame。解决了大数据传输问题,可以将大数据分割称不同小的Frame传输。可以和HTTP一样边生成边传输,提高了传输效率。

什么是心跳?

查看答案

心跳就是为了检测TCP是否还在链接,通常由客户端发起,等待服务器响应。如果10秒没有回应就代表服务器或者客户端链接出现了问题。

AF中常驻线程的实现

查看答案

通过单利创建线程,在线程内部通过NSMachPort监听加入到当前的runloop中,访问新建的线程没有任务就退出了。

抓包工具抓取HTTPS的原理

查看答案

对于客户端伪装称服务器,对于服务器伪装称客户端。拦截客户端发送的真实请求,之后伪装客户端发送给服务器。接收到服务器的真实返回,通过自己的自签名证书向真实客户端响应内容。