网络杂记

1. 对称加密和非对称加密

对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;常见的对称加密算法:DES,AES等。

而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。

由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

对称加密优缺点:对称加密相比非对称加密算法来说,加解密的效率要高得多、加密速度快。但是缺陷在于对于密钥的管理和分发上比较困难,不是非常安全,密钥管理负担很重。

非对称加密优缺点:安全性更高,公钥是公开的,密钥是自己保存的,不需要将私钥给别人。缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

总结一下吧
安全肯定是非对称加密安全,但是效率比较慢,对称加密效率高,但是不安全。严谨一点的做法是混合起来使用,将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

2. TCP协议如何来保证传输的可靠性

TCP提供一种面向连接的、可靠的字节流服务。其中,面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过TCP链接交换8bit字节构成的字节流,TCP不在字节流中插入记录标识符。

对于可靠性,TCP通过以下方式进行保证:

数据包校验:目的是检测数据在传输过程中的任何变化,若校验出包有错,则丢弃报文段并且不给出响应,这时TCP发送数据端超时后会重发数据;

对失序数据包重排序:既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP将对失序数据进行重新排序,然后才交给应用层;

丢弃重复数据:对于重复数据,能够丢弃重复数据;

应答机制:当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒;

超时重发:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段;

流量控制:TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据,这可以防止较快主机致使较慢主机的缓冲区溢出,这就是流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议。

3. 在浏览器输入一个URL按下回车后,其流程是?

  1. 进行寻址:若浏览器缓存中有URL对应的IP,则直接查询IP;否则访问DNS进行寻址

  2. DNS或者URL Cache返回网页服务器的IP地址

  3. 浏览器与网页服务器进行三次握手建立TCP连接

  4. 浏览器与服务器建立HTTP会话,接收来自服务器的HTTP数据。

  5. 浏览器解析HTTP数据,在本地窗口渲染并显示网页。

  6. 当浏览器页面被关闭时,终止HTTP会话并关闭连接。

4. HTTP协议之请求

http请求由三部分组成,分别是:请求行、消息报头、请求正文

请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本。格式为:Method Request-URI HTTP-Version CRLF, 其中Method表示请求方法;Request-URI是一个统一资源定位符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行。

请求方法:

GET 请求获取Request_URI所标识的资源

POST 在Resuest_URI所标识的资源中附加新的数据

HEAD 请求获取由Request_URI所标识的资源的响应消息报头

PUT 请求服务器存储一个资源,并用Request_URI作为其标识

DELETE 请求服务器删除Request_URI所标识的资源

TRACE 请求服务器回送到的请求消息,用于测试和诊断

CONNECT 保留将来使用

OPTIONS 请求查询服务器的性能, 或者查询与资源相关的选项和需求

5. HTTP协议之响应

1XX : 指示信息-表示请求已接收,继续处理

2XX : 表示请求已被成功接收、理解和接收

3XX : 重定向–要完成请求必须进行更进一步的操作。

4XX : 客户端错误–请求有语法错误或请求无法实现

5XX : 服务端错误–服务端未能实现合法的请求。

常见的状态码、状态描述、说明:

  • 200(OK/正常):返回正常
  • 201(Created/已创建):表示服务器在请求过程中已经建立了新文档,应在头信息中给出他的URL
  • 202(Accepted/接受):告诉客户端,请求还在执行,没有处理完
  • 203 (Non-Authoritative Information/非官方信息):状态码203 (SC_NON_AUTHORITATIVE_INFORMATION)是表示文- 档被正常的返回,但是由于正在使用的是文档副本所以某些响应头信息可能不正确。这是 HTTP 1.1中新加入的。
  • 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
  • 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
  • 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
  • 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
  • 400 (错误请求) 服务器不理解请求的语法。
  • 401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
  • 403 (禁止) 服务器拒绝请求。
  • 404 (未找到) 服务器找不到请求的网页。
  • 405 (方法禁用) 禁用请求中指定的方法。
  • 500 (服务器内部错误) 服务器遇到错误,无法完成请求。
  • 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
  • 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
  • 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
  • 504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
  • 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

6.http请求头

  • Accept: text/html,image/* – 浏览器接受的数据类型

  • Accept-Charset: ISO-8859-1 – 浏览器接受的编码格式

  • Accept-Encoding: gzip,compress --浏览器接受的数据压缩格式

  • Accept-Language: en-us,zh- --浏览器接受的语言

  • Host: www.it315.org:80 --(必须的)当前请求访问的目标地址(主机:端口)

  • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --浏览器最后的缓存时间

  • Referer: http://www.it315.org/index.jsp – 当前请求来自于哪里

  • User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器类型

  • Cookie:name=eric – 浏览器保存的cookie信息

  • Connection: close/Keep-Alive – 浏览器跟服务器连接状态。close: 连接关闭 keep-alive:保存连接。

  • Date: Tue, 11 Jul 2000 18:23:51 GMT – 请求发出的时间

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值