网络复习

  • 网络在计算机体系中的作用是什么?
    我们可以将它类比成货运公司+公路管理,数据的传输
  • TCP/IP体系分层
  • 数据能传输的三个整体的理解:
    局域网内:链路层对链路层(类比货运汽车是可以直接到达另一个城市的)
    局域网内:应用层对应用层(封装+解包/分用,买东西会经过淘宝,快递,物流)
    互联网中:应用层对应用层(ip地址不变的(五元组的作用),mac地址是在变化的)
    ip是长期目标,mac是短期目标(局域网内是点对点的)
  • 应用层协议
    <1> DNS基本原理
    <2>HTTP协议
    1.HTTP工作在传输层的TCP协议上(真是因为TCP帮助HTTP完成了可靠性)
    2 .HTTP的实际运用
    3 .理解URL(urlencode(将字符串以url的编码)/urldecode(解码)/queryString(get方法递交的表单或通过url传值采用request.querystring进行获值的方法)/path)
    x`
    4 .请求/响应的基本格式:(request/response)
    在这里插入图片描述

http请求:在这里插入图片描述

  • 首行: [方法] + [url] + [版本]
  • Header:请求的属性,冒号分割键值对,每组属性通过\n分割,遇到空行表示Header结束
  • Body:空行后面的内容都是Body,Body允许出现为空的字符串,如果Body存在则在Header中会有一个Content-length属性来标识Body 的长度

http响应:
在这里插入图片描述

  • 首行: [版本] + [状态码] + [状态码解释]
  • Header:请求的属性,冒号分割键值对,每组属性通过\n分割,遇到空行表示Header结束
  • Body:空行后面的内容都是Body,Body允许出现为空的字符串,如果Body存在则在Header中会有一个Content-length属性来标识Body 的长度,如果服务器返回了一个html,呢么html的页面就显示在body

请求方法:
在这里插入图片描述
响应的状态:
在这里插入图片描述
HTTP的常见Header:

  • Content-Type: 数据类型(text/html等)
  • Content-Length:Body 的长度
  • Host:客户端告知服务器,所请求的资源是在哪个端口上(path+port)
  • User-Agent:申明用户的操作系统和浏览器版本信息
  • referer:当前是从哪个页面跳转过来的
  • location:搭配30X的状态码使用,告诉客户端接下来要去哪里访问
  • Cookie:用在客户端存储少量信息,通常用于实现会话(session)的功能

Cookie+Session(重点)

1.用户信息
http是一种无状态协议,就是说这一次请求和下一次请求是没有任何关系的,互不认识的,没有关联,这种无状态的好处是快速。坏处是需要进行用户状态保持的场景时【比如登录状态下进行页面的跳转,或者用户多页面共享等场景】,必须使用一些方式和手段比如:session和Cookie
2.Cookie
如上所述,http是一个无状态的协议,但是访问有些资源的时候往往需要经过认证的账户才能访问,而要一直保持在线的状态,所以,Cookie是一种在浏览器端解决的方案,将登陆认证过的信息保存在本地浏览器中,后面每次发送http请求时都会自动带上该信息,就能达到认证用户,保持用户在线的作用。
在这里插入图片描述
设置Cookie的方法是在response报头中可以携带set-Cookie字段来完成。

3.Session
而将用户的敏感信息放到本地浏览器中,能结果回话保持的问题,但是也会引起安全问题,一旦Cookie丢失,用户的信息就会泄露,也很容易造成跨站攻击,所以有了另外一种解决方法,将用户的信息不存储在浏览器,而是存储在服务器,而服务器本身采用md5的算法或相关算法生成唯一值(session_id),将该值保存在客户端浏览器,随后客户端的后续请求,浏览器都会自动携带该id,进而在服务器端进行认证,进而达到回话保持状态。
在这里插入图片描述
Cookie和Session区别:

  • Cookie是以文本文件格式存储在浏览器中,而session是存储在服务器中。
  • 因为每次发起http请求,都会携带有效的cookie信息,所以Cookie一般都是有大小限制的,防止网络压力一般只有4k
  • 可以轻松访问cookie值但是无法轻松访问会话值,因此session方案更安全。

Cookie一般是一起来搭配使用,因为一般使用session,我们是需要使用到cookie机制来保存session_id的。

呢如果说本地禁止了cookie的话,不是session也不能使用了?
不用担心,也有一些代替的方法

  • 经常使用的技术是URL重写,就是把session_id直接附加在url路径的后面
  • 还有一种技术是:表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session_id传递回服务器。

面试问题:HTTP和HTTPS的区别是什么?

简单理解:http传送数据,都是明文传送,很容易被窃取或侦听,在现有的互联网应用中,很明显有不安全因素,所以有了HTTPS,可以简单的理解成HTTPS多了一层加密解密层,在发送前进行加密,接收后进行解密,在网络里和传输的都是经过加密的数据。
在这里插入图片描述

SSL相关介绍,浏览请点击

未完待续…