http网络协议+cookie是什么?+session?+内网+nginx怎么实现正向代理和反向代理呢???

重点:http请求的图示:
https://blog.csdn.net/c_base_jin/article/details/81157778
https://blog.csdn.net/c_base_jin/article/details/81157778

一、http协议??是什么?
https://www.cnblogs.com/bq-med/p/8602278.html
http:超文本传输协议,底层依赖于Tcp/IP进行实现,它是一个面向连接的过程。
Http有这么一个显著的特点,它是无状态的,什么是无状态呢?服务器端接收到一个Http请求它只管处理和响应,所以每一个Http请求都是上下不关联的,服务器端也不知道两次请求来自同一个浏览器的同一个页面。
1.2http怎么解决无状态呢?
Http通过cookie/session机制 ??? 来解决无状态的问题,拿Tomcat为例,
当客户端发出一次请求后,当服务器端响应客户端时,会在响应头中加入一个setCookie,设置一个JsessionID,
而第二次客户端请求时,服务器端拿着cookie中的JsessionID就可以找到对应的Session,来实现多次请求一个会话的效果。
1.3网络响应过程怎么理解?
在键盘上输入 “百度”,当我们按下回车后,DNS??会解析域名
找到服务器的ip地址
然后和服务器建立三握手协议,然后再向服务器端发出请求
服务器端处理后,返回响应。
1.4http的长连接和短连接?
在TCP/IP协议中,有长连接和短连接这么两种连接,Http1.0中,采用的是短连接,这样也就意味着,每当我新建一次Http请求都得建立一次Tcp连接,如果在一个页面中不停的获取一些资源,将会频繁的有三握手,四挥手。
而在Http1.1中,在服务器响应头中,会加入,Connection:keep-alive这么一个内容,也就意味着Http1.1中默认的就是长连接,在多次请求中,如果和服务器端的Tcp连接还未结束,就会使用同一条Tcp连接发起Http请求。
二、http的请求报文和响应报文是什么?知道吗?
2.1 http请求报文
图片: https://uploader.shimo.im/f/lRcnYK4u20YDMB9H.png
1、请求行:请求行是用来标识请求的方法 (报文的动作),请求的地址,以及请求的协议;
请求的方法也就是我们常说的get/post/delete/put等等,其中这四种对应了RestFul请求规范。???
请求的地址就是地址。 字段表示服务器的资源目录定位
请求的协议对应的就是Http协议的版本。
2、请求头:请求头的主要内容是用于描述请求主体,(报文的属性)其中包含:
Accept 指定客户端能够接收的内容格式类型
Accept-Language 指定客户端能够接受的语言类型
Accept-Ecoding 指定客户端能够接受的编码类型
User-Agent 用户代理,向服务器说明自己的操作系统、浏览器等信息
Connection 是否开启持久连接(keepalive)
Host 服务器域名

3、请求主体,get方法是没有请求主体,(报文的数据)他的请求就直接放在Url中
post请求主体,用于放置请求的参数,可见下文:
图片: https://uploader.shimo.im/f/vZHID76VWjgO7Cla.png
请求报文:
图片: https://uploader.shimo.im/f/hiwUVAL2MiAtdAQ5.png
2.2响应的报文
图片: https://uploader.shimo.im/f/s241RjBnaXMtKUBo.png
1、响应行:一样用于标注协议版本,以及状态码,所谓的状态码,就是用数字表示响应的结果,一般2的表示资源请求成功,3表示重定向,4表示客户端错误,如404,5表示服务器端错误,常见的有500,如下图:
常见响应码
2、响应头部:和请求体几乎没差,也就是对响应主体的描述,如,编码方式,响应文件类型,json还是text还是html,连接属性等等。
首部由多个响应头(也叫首部行)组成, 首部字段名如下,不全:
Server 服务器软件名,Apache/Nginx ??
Date 服务器发出响应报文的时间
Last-Modified 请求资源的最后的修改时间

3、响应主体,一样我们列出以下样例:
图片: https://uploader.shimo.im/f/jIhw5TkNTSw4RYTT.png
2.3http的响应模型??
图片: https://uploader.shimo.im/f/vArjYv20m84fYkk6.png
2.4get post delete put方法你了解吗?
图片: https://uploader.shimo.im/f/6Eo37DHJyDQl6HCn.png
二、httpclient在java里怎么使用??
https://blog.csdn.net/justry_deng/article/details/81042379

三、http协议中的cookie是很么?有什么属性?
问题:用户的逛淘宝,添加了好多商品,但如果是无状态的,最后发现购物车里只有一件商品,怎么办?这就要引入cookie

cookie作用:
身份认证
购物车
智能推荐
web email
隐私问题,广告厂商收集隐私
https://www.cnblogs.com/bq-med/p/8603664.html
四、session cookie token 之间有什么联系?他们各自的作用是什么?
https://www.cnblogs.com/bq-med/p/9759408.html

token相关知识点:https://blog.csdn.net/daimengs/article/details/81088172
4.1sessionid是什么东西?
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,
如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个)
如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串
这个 session id将被在本次响应中返回给客户端保存。
4.2seesion怎么实现,你知道吗?
使用Cookie来实现
服务器给每个Session分配一个唯一的JSESSIONID,并通过Cookie发送给客户端。
当客户端发起新的请求的时候,将在Cookie头中携带这个JSESSIONID。
这样服务器能够找到这个客户端对应的Session。流程如下图所示:
图片: https://uploader.shimo.im/f/sQfnEyMbAzQd7FUY.png
五、DNS是什么?知道吗?
https://baijiahao.baidu.com/s?id=1618275106500876216&wfr=spider&for=pc

DNS:分布式层次式数据库

图片: https://uploader.shimo.im/f/uG3UMga8BZkNPVeU.png
5.1 dns是什么东西?
dns是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
互联网的一点点就是将人性化的域名google.com翻译成机器可读的IP地址
5.2 dns的工作过程是什么?
图片: https://uploader.shimo.im/f/oQASTOfamD44pvNv.png
六、Nginx是什么东西?转发请求?
重点知识点:https://www.cnblogs.com/wcwnina/p/8728391.html
6.1 Nginx是什么呢??
首先:我们发生http请求,但不能直接请求到百度那边,所以要使用nginx来进行转发
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡???的实现。
6.2 nginx的正向代理和反向代理是什么呢?
正向代理:“它代理的是客户端,代客户端发出请求”,是一个位于客户端和原始服务器(origin server)之间的服务器,(nginx是在中间的服务器,中间的,中间的)
为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端(本地的电脑)必须要进行一些特别的设置才能使用正向代理。
举一个日常的小例子吧:

  1. 比方说受到GFW的影响无法访问twitter的时候,我们可以通过代理的方式,让用户绕过防火墙,从而连接到目标网络或者服务。
  2. 正向代理的工作原理就像一个跳板,比如:我访问不了google.com,但是我能访问一个代理服务器A,A能访问google.com,于是我先连上代理服务器A,告诉他我需要google.com的内容,A就去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

图片: https://uploader.shimo.im/f/nk7P5vQWDWIYgAb2.png

反向代理:举例如我大天朝的某宝网站,每天同时连接到网站的访问人数已经爆表,单个服务器远远不能满足人民日益增长的购买欲望了,此时就出现了一个大家耳熟能详的名词:分布式部署;也就是通过部署多台服务器来解决访问人数限制的问题;某宝网站中大部分功能也是直接使用Nginx进行反向代理实现的,并且通过封装Nginx和其他的组件之后起了个高大上的名字:Tengine,有兴趣的童鞋可以访问Tengine的官网查看具体的信息:http://tengine.taobao.org/。那么反向代理具体是通过什么样的方式实现的分布式的集群操作呢,我们先看一个示意图(我把服务器和反向代理框在一块,同属于一个环境,后面我有介绍)
七、非持久性连接(HTTP)
图片: https://uploader.shimo.im/f/xN7sYXGs1tgRjP3C.png

图片: https://uploader.shimo.im/f/SQHGvIbAEUssjXRT.png

现实生活场景:
打开一个链接,先是出现了整体的网站,然后图片是一张一张逐步加载出来的,耗费时间比较长
过程:
客户端通过TCP连接的套接字发出,消息里面包含URL表明客户端需要的对象是什么
图片: https://uploader.shimo.im/f/xVSxGVw8oZoclLmC.png

持久性连接:
客户端到服务器发起 TCP请求需要耗时,也需要浪费资源,世界上n个客户端发起请求,会对服务器造成资源负担,因此要建立持久性的连接。
图片: https://uploader.shimo.im/f/UPJ6uIsYkZMXZI9Z.png

八、虚拟专用网络(VPN)
8.1功能
在 公用网络 上建立 专用网络 ,进行 加密 通讯。在 企业网络 中有广泛应用。 VPN 网关通过对 数据包 的加密和数据包目标地址的转换实现 远程访问 。
8.2VPN访问过程
让外地员工访问到内网资源,利用VPN的解决方法就是在内网中架设一台VPN 服务器 。外地员工在当地连上互联网后,通过互联网连接VPN服务器,然后通过VPN服务器进入企业内网。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了 加密 处理。有了 数据加密 ,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上VPN使用的是互联网上的公用链路,因此VPN称为虚拟专用网络,其实质上就是利用 加密技术 在公网上封装出一个 数据通讯 隧道。有了VPN技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用VPN访问内网资源,这就是VPN在企业中应用得如此广泛的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值