百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

网络相关知识(网络相关知识 面试)

nanshan 2024-10-21 06:02 11 浏览 0 评论

1、http中session和cookies的作用和区别

cookie存在客户端的信息头中,session在服务器端存储,文件、数据库等都可以

一般来说session的验证需要cookie带一个字段来表示这个用户是哪一个session,所以当客户端禁用cookie时,session将失效

cookie就是小一段文本信息

cookie的格式为key:value;key:value

cookie的值由服务器端生成,客户端保存

2、http协议信息头

简要说明请求中accept\accept-encoding、accept-language都代表什么意思

1、请求头

accept:浏览器告诉服务器它所支持的数据类型

accept-charset:浏览器告诉服务器它采用的字符集

accept-encoding:浏览器告诉服务器它所支持的压缩格式

accept-language:浏览器告诉服务器它所采用的语言

host:浏览器告诉服务器我想访问服务器哪台主机

if-modified-since:浏览器告诉服务器它缓存数据时间是多少

referer:浏览器告诉服务器我是从那个网页点过来的(防盗链)

user-agent:浏览器告诉服务器我所使用的浏览器类型、版本等信息

date:浏览器告诉服务器我是什么时间访问的

2、响应头

location:告诉浏览器你去找谁,配合302状态码使用

server:告诉浏览器服务器的类型

content-encoding:告诉浏览器回送的数据采用的压缩格式

content-type:告诉浏览器回送的数据类型

last-modified:告诉浏览器数据的最后修改时间

refresh:用于控制浏览器定时刷新

content- disposition:告诉浏览器需要以下载方式打开的数据

transfer-encoding:告诉浏览器数据是以分块形式回送

3、http正确的响应码

信息响应:1xx:请求已接收到,需要进一步处理才能完成,HTTP1.0 不支持。

100 Continue:上传大文件前使用

由客户端发起请求中携带 Expect:100-continue 头部触发

101 Switch Protocols: 协议升级使用

由客户端发起请求中携带 Upgrade: 头部触发,如升级 websocket 或者 http/2.0

102 Processing:WebDAV 请求可能包含许多涉及文件操作的子请求,需要很长时间

才能完成请求。

该代码表示服务器已经收到并正在处理请求,但无响应可用。这样可

以防止客户端超时,并假设请求丢失

成功响应2xx:成功处理请求

200 OK: 成功返回响应

201 Created: 有新资源在服务器端被成功创建

202 Accepted:服务器接收并开始处理请求,但请求未处理完成。这样一个模

糊的概念是有意如此设计,可以覆盖更多的场景。例如异步、需要长时间处理

的任务。

203Non-Authoritative Information: 当代理服务器修改了 origin server 的

原始响应包体时(例如更换了HTML中的元素值),代理服务器可以通过修改

200为203的方式告知客户端这一事实,方便客户端为这一行为作出相应的处理

203响应可以被缓存。

204 No Content:成功执行了请求且不携带响应包体,并暗示客户端无需

更新当前的页面视图。

205 Reset Content: 成功执行了请求且不携带响应包体,同时指明客户端

需要更新当前页面视图。

206 Partial Content: 使用 range 协议时返回部分响应内容时的响应码

207 Multi-Status: RFC4918,在WEBDAV 协议中以XML 返回多个资源

的状态。

208 Already Reported: RFC5842,为避免相同集合下资源在207响应码

下重复上报,使用208可以使用父集合的响应码。

重定向3xx:重定向使用 Location 指向的资源或者缓存中的资源。在RFC2068

中规定客户端重定向次数不应超过5次,以防止死循环

300 Multiple Choices: 资源有多种表述,通过 300 返回给客户端后由其

自行选择访问哪一种表述。由于缺乏明确的细节,300 很少使用。

301 Moved Permanently: 资源永久性的重定向到另一个 URI中。

302 Found:资源临时的重定向到另一个 URI中。

303See Other: 重定向到其他资源,常用于POST/PUT 等方法的响应中

304NotModified:当客户端拥有可能过期的缓存时,会携带缓存的标识

etag、时间等信息询问服务器缓存是否仍可复用,而304是告诉客户端可以

复用缓存。

307 Temporary Redirect: 类似302,但明确重定向后请求方法必须与原

请求方法相同,不得改变

308 Permanent Redirect: 类似301,但明确重定向后请求方法必须与原请

求方法相同,不得改变

客户端响应4xx

400 Bad Request

1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。

2、请求参数有误。


401 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。


402 Payment Required

此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用。


403 Forbidden

服务器已经理解请求,但是拒绝执行它。与 401 响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个 404 响应,假如它不希望让客户端获得任何信息。


404 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

405 Method Not Allowed

请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。 鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。


406 Not Acceptable

请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。


407 Proxy Authentication Required

与401响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。


408 Request Timeout

请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。


409 Conflict

由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。


410 Gone

被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用 404 状态码。除非额外说明,否则这个响应是可缓存的。


411 Length Required

服务器拒绝在没有定义 Content-Length 头的情况下接受请求。在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。


412 Precondition Failed

服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。


413 Payload Too Large

服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。此种情况下,服务器可以关闭连接以免客户端继续发送此请求。如果这个状况是临时的,服务器应当返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试。


414 URI Too Long

请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括:本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。


415 Unsupported Media Type

对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。


416 Requested Range Not Satisfiable

如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。


417 Expectation Failed

此响应代码意味着服务器无法满足 期望 请求标头字段指示的期望值。


418 I'm a teapot

服务器拒绝尝试用 “茶壶冲泡咖啡”。


421 Misdirected Request

该请求针对的是无法产生响应的服务器。 这可以由服务器发送,该服务器未配置为针对包含在请求 URI 中的方案和权限的组合产生响应。


422 Unprocessable Entity (WebDAV)

请求格式良好,但由于语义错误而无法遵循。


423 Locked (WebDAV)

正在访问的资源被锁定。


424 Failed Dependency (WebDAV)

由于先前的请求失败,所以此次请求失败。


426 Upgrade Required

服务器拒绝使用当前协议执行请求,但可能在客户机升级到其他协议后愿意这样做。 服务器在 426 响应中发送 Upgrade 头以指示所需的协议。


428 Precondition Required

原始服务器要求该请求是有条件的。 旨在防止“丢失更新”问题,即客户端获取资源状态,修改该状态并将其返回服务器,同时第三方修改服务器上的状态,从而导致冲突。


429 Too Many Requests

用户在给定的时间内发送了太多请求(“限制请求速率”)。


431 Request Header Fields Too Large

服务器不愿意处理请求,因为它的 请求头字段太大( Request Header Fields Too Large)。 请求可以在减小请求头字段的大小后重新提交。


451 Unavailable For Legal Reasons

用户请求非法资源,例如:由政府审查的网页。

服务端响应5xx

500 Internal Server Error

服务器遇到了不知道如何处理的情况。

501 Not Implemented

此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。

502 Bad Gateway

此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。

503 Service Unavailable

服务器没有准备好处理请求。 常见原因是服务器因维护或重载而停机。 请注意,与此响应一起,应发送解释问题的用户友好页面。 这个响应应该用于临时条件和 Retry-After:如果可能的话,HTTP头应该包含恢复服务之前的估计时间。 网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。

504 Gateway Timeout

当服务器作为网关,不能及时得到响应时返回此错误代码。

505 HTTP Version Not Supported

服务器不支持请求中所使用的HTTP协议版本。

506 Variant Also Negotiates

服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。

507 Insufficient Storage

服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。

508 Loop Detected (WebDAV)

服务器在处理请求时检测到无限循环。

510 Not Extended

服务器需要对请求进一步扩展才能实现它。

511 Network Authentication Required

511 状态码指示客户端需要进行身份验证才能获得网络访问权限。

4、nginx反向代理

nginx是一个高性能的http和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

占有内存少,并发能力强


正向代理:我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。我们直接用国内的服务器却无法访问国外的服务器,或者是访问很慢,所以我们需要再本地搭建一个服务器来帮助我们去访问。

反向代理:多台服务器,访问的服务器时候,因为服务器中间session不共享,那我们是不是在服务器之间访问需要频繁登录,那这个时候搭建一个过演服务器,对我们是没有任何影响的,我们是登录一次,但是访问所有,这种情况就是反向代理。

对我们来说,客户端对代理是无感知的,暴露的是代理服务器地址,隐藏了真实服务器的地址。

5、nginx的负载均衡

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

简单来说:现有的请求使服务器压力太大无法承受,所有我们需要搭建一个服务器集群,去分担原先一个服务器所承受的压力,那现在我们有ABCD等等多台服务器,我们需要把请求分给这些服务器,但是服务器可能大小也有自己的不同,所以怎么分? 如何分面更好?又是一个问题。

Nginx给出来三种关于负载均衡的方式

1.轮询法(默认方法)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动别除。

适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。


2.weight权重模式(加权轮询)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大

3.ip hash

上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

我们可以采用ip hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

6、使用WAF防止DDoS攻击

WAF是Web应用程序防火墙,是一种网络安全技术,可以在应用程序层面防御攻击,包括DDoS攻击。

DDoS攻击者可以利用互联网的广泛性,将恶意流量注入到网站的流量中,导致网站访问不稳定、用户信息丢失或泄露等一系列问题。

WAF能够对不同类型的攻击进行检测并进行过滤,阻止恶意攻击流量,保证站点顺畅、稳定运行。WAF还可以检测网站的异常流量,并及时预先配置或调整相应的策略,避免DDoS攻击。

相关推荐

F5负载均衡器如何通过irules实现应用的灵活转发?

F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通过irules编写强大灵活的转发规则,实现web业务的灵活应用。irules是基于TCL语法的,每个iRules必须包含...

映射域名到NAS

前面介绍已经将域名映射到家庭路由器上,现在只需要在路由器上设置一下端口转发即可。假设NAS在内网的IP是192.168.1.100,NAS管理端口2000.你的域名是www.xxx.com,配置外部端...

转发(Forward)和重定向(Redirect)的区别

转发是服务器行为,重定向是客户端行为。转发(Forward)通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletRe...

SpringBoot应用中使用拦截器实现路由转发

1、背景项目中有一个SpringBoot开发的微服务,经过业务多年的演进,代码已经累积到令人恐怖的规模,亟需重构,将之拆解成多个微服务。该微服务的接口庞大,调用关系非常复杂,且实施重构的人员大部分不是...

公司想搭建个网站,网站如何进行域名解析?

域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转...

域名和IP地址什么关系?如何通过域名解析IP?

一般情况下,访客通过域名和IP地址都能访问到网站,那么两者之间有什么关系吗?本文中科三方针对域名和IP地址的关系和区别,以及如何实现域名与IP的绑定做下介绍。域名与IP地址之间的关系IP地址是计算机的...

分享网站域名301重定向的知识

网站域名做301重定向操作时,一般需要由专业的技术来协助完成,如果用户自己在维护,可以按照相应的说明进行操作。好了,下面说说重点,域名301重定向的操作步骤。首先,根据HTTP协议,在客户端向服务器发...

NAS外网到底安全吗?一文看懂HTTP/HTTPS和SSL证书

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry搭好了NAS,但是不懂做好网络加密,那么隐私泄露也会随时发生!大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数...

ForwardEmail免费、开源、加密的邮件转发服务

ForwardEmail是一款免费、加密和开源的邮件转发服务,设置简单只需4步即可正常使用,通过测试来看也要比ImprovMX好得多,转发近乎秒到且未进入垃圾箱(仅以Mailbox.org发送、Out...

使用CloudFlare进行域名重定向

当网站变更域名的时候,经常会使用域名重定向的方式,将老域名指向到新域名,这通常叫做:URL转发(URLFORWARDING),善于使用URL转发,对SEO来说非常有用,因为用这种方式能明确告知搜索引...

要将端口5002和5003通过Nginx代理到一个域名上的操作笔记

要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...

SEO浅谈:网站域名重定向的三种方式

在大多数情况下,我们输入网站访问网站的时候,很难发现www.***.com和***.com的区别,因为一般的网站主,都会把这两个域名指向到同一网站。但是对于网站运营和优化来说,www.***.com和...

花生壳出现诊断域名与转发服务器ip不一致的解决办法

出现诊断域名与转发服务器ip不一致您可以:1、更改客户端所处主机的drs为223.5.5.5备用dns为119.29.29.29;2、在windows上进入命令提示符输入ipconfig/flush...

涨知识了!带你认识什么是域名

1、什么是域名从技术角度来看,域名是在Internet上解决IP地址对应的一种方法。一个完整的域名由两个或两个以上部分组成,各部分之间用英文的句号“.”来分隔。如“abc.com”。其中“com”称...

域名被跳转到其他网站是怎么回事

当你输入域名时被跳转到另一个网站,这可能是由几种原因造成的:一、域名可能配置了域名转发服务。无论何时有人访问域名,比如.com、.top等,都会自动重定向到另一个指定的URL,这通常是在域名注册商设...

取消回复欢迎 发表评论: