当前位置:   article > 正文

计算机网络不完全整理(下)--春招实习

计算机春招

HTTP

从输入url到显示主页的过程

参考:segmentfault.com/a/119000000…

  • DNS解析:网址到ip地址的转换
  • TCP连接: HTTP协议使用TCP作为传输层协议
  • 发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染页面
  • 连接结束

HTTP和HTTPS的区别

HTTP报文是包裹在TCP报文中发送的,服务器端收到TCP报文时会解包提取出HTTP报文。但是HTTP报文是明文,如果中间被截取的话会存在一些信息泄露的风险。

HTTPS协议的本质就是HTTP + SSL(or TLS)。在HTTP报文进入TCP报文之前,先使用SSL对HTTP报文进行加密。

HTTPS在传输数据之前需要客户端与服务器进行一个握手(TLS/SSL握手),在握手过程中将确立双方加密传输数据的密码信息(第二次握手服务器会发送一个SSL证书,客户端对其验证)。

TLS/SSL使用了非对称加密、对称加密以及hash等。具体过程请参考经典的阮一峰先生的博客TLS/SSL握手过程

SSL加密过程: 需要注意的是非对称加解密算法的效率要比对称加解密要低的多。 所以SSL在握手过程中使用非对称密码算法来协商密钥,实际使用对称加解密的方法对http内容加密传输。

Https的好处

  • 所有信息都是加密传播,黑客无法窃听。
  • 具有校验机制,一旦被篡改,通信双方会立刻发现。
  • 配备身份证书,防止身份被冒充。

缺点

  • SSL证书维护麻烦。
  • 握手次数增加,降低访问速度。
  • Http跳转到Https的方式增加了用户访问耗时。
  • Https涉及的算法会消耗CPU资源。

常见的状态码

  • 200 ok 服务器已成功处理了请求并提供了请求的网页

  • 202 Accepted 已经接受请求,但处理尚未完成

  • 204 No Content 没有新文档,浏览器应该继续显示原来的文档

  • 206 Partial Content 客户端进行了范围请求(实现断点续传)

  • 301 Moved Permanently 永久性重定向

  • 302(或307) 临时性重定向

  • 304 Not Modified 未修改,自从上次请求后,请求的内容未修改过

  • 401 未经授权

  • 403 Forbidden 服务器拒绝请求

  • 404 Not Found 服务器不存在客户端所请求的资源

500 服务器遇到一个错误,使其无法请求提供服务

HTTP长连接、短连接

HTTP 2.0

问题

GET 与 POST 比较:作用、参数、安全性、幂等性、可缓存。

参考

HTTP 状态码

Cookie和Session

什么是Cookie和Session

Sesssion在服务端生成,存在客户端。客户端访问某个地址时,服务器会根据页面的头部信息生成coolkie(字符串),然后cookie会加在http响应头中,发往客户端并保存在浏览器。在下次客户端请求时,请求中会附带存储的Cookie。

Session 是在服务器端生成的,存储在服务器端,即存在内存中。可以对生成的 Session 设置过期时间,如果不设置过期时间,默认的 Session 过期时间是30 分钟。但是,Sesssion 的生成的同时,会生成一个与之相关联的的 SessionID ,此SessionID的存储是需要 Cookie来完成的。SessionID 是以名称为 JSESSIONID,其值应该是一个既不会重复,又不容易被找到规律以仿造的字符串。SessionID会随着此次Http响应,一并返回到客户端,并保存在客户端中(Cookie)。到当前请求再次发出后,该 SessionID会随着 Http 头部,传到服务器中,服务器依据当前 SessionID 得到与之对应的 Session.

注意:一个域,在客户端建立的所有的Cookie都是可以共享的,只要 Cookie 没有过期。

为什么需要cookie和Seesion

在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。Cookie和Session的出现就是为了解决这个问题。

  • Cookie使用场景:有些网站有记住用户名的功能,当你勾这个的时候,下次进入该网站时,就会保存上一次登录的用户名
  • Seesion使用场景:利用Seesion来验证用户是否已登录,利用Session来保存验证码。

Cookie和Session的区别

  • Cookie是存在客户端,Session存在服务器
  • 安全性要求高的用Session,要求低用Cookie
  • Cookie只能存储字符串,Session可以存储任何信息
  • Cookie如果不设置时间,当关闭浏览器时,Cookie就失效,不会在本地保存;Session的生命周期是一个会话(当启动浏览器到关闭浏览器)
  • 在存储相对持久的信息时,应考虑使用 Cookie,因为 Cookie 可以以文件的形式,存储在客户端。在进行一些登录的验证及信息拦截的时候,可以使用 Session。

参见:www.cnblogs.com/xiaoshitout…

cookie和session结合使用

web开发发展至今,cookie和session的使用已经出现了一些非常成熟的方案。在如今的市场或者企业里,一般有两种存储方式:

  1. 存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。
  2. 将session数据加密,然后存储在cookie中。这种专业术语叫做client side session。

参见博客:www.cnblogs.com/xxtalhr/p/9…

如何客户端禁用了Cookie,如何存储用户的信息

如果客户端禁用了 Cookie 的话,很多网站任然可以存储用户的信息。一种处理的方式是URL 重写,将 SesseionID 直接附加在请求地址的后面。另一种处理的方式是,使用隐藏自动的方式。就是服务器自动的在表单中,添加一个隐藏字段,以便在表单提交时,将 SesseionID 一起传到服务器,进行识别。

Session的问题

  • session是存在服务器的内存中的,如果session过多会影响服务器的性能
  • session只在一台服务器里,当有多台服务器的时候,访问别的服务器肯定会失败(需考虑Session共享)

4. 长连接与短连接原理以及使用场景,流水线。

5. HTTP/1.x 的缺陷,以及 HTTP/2 的特点。

6. HTTP/1.1 的特性。

7. HTTP 与 FTP 的比较。

转载于:https://juejin.im/post/5c8a5ba151882542860a52a2

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号