2024年最全web网络基础,2024年最新阿里终面后多久有结果

前端面试题汇总

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

性能

linux

前端资料汇总

三次握手:首先Client端发送连接请求报文(一次握手);Server端接受连接后回复ACK报文,并为这次连接分配资源(二次握手);Client端接收到ACK报文后也向Server端发送ACK报文,并分配资源(三次握手),这样TCP连接就建立了。

四次挥手:Client端发起中断请求,即发送FIN报文(一次挥手);Server端接收到FIN报文后,当Server端还有数据没有传送完成,先发送ACK报文给Client端,并继续传送数据,Client端接收到ACK报文后进入FIN_WAIT状态,等待Server端的FIN报文(二次挥手);当Server端确定数据已发送完成,则向Client端发送FIN报文(三次挥手);Client端收到FIN报文后,发送ACK报文通知Server端开始关闭连接并进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传(四次挥手);Server端收到ACK后,断开连接。Client端等待2MSL后没有收到回复,则证明Server端已正常关闭,Client端也可以关闭连接了,这样TCP连接就关闭了。

注意:seq:“sequance”序列号;ack:“acknowledge”确认号;SYN:“synchronize”请求同步标志;ACK:“acknowledge”确认标志;FIN:“Finally”结束标志。

2.UDP协议

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,因此可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠传输,可能会出现丢包现象,实际应用中要求开发者编程验证。

UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于使用虚电路的面向连接的服务,UDP主要用于面向查询、应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。

每个UDP报文分UDP报头和UDP数据区两部分。报头结构具体如下:

l 源端口号(16位)

l 目标端口号(16位)

l 数据报长度(16位)

l 校验值(16位)

使用UDP协议包括:TFTP(简单文件传输协议)、SNMP(简单网络管理协议)、DNS(域名解析协议)、NFS、BOOTP。

在生活中,大家经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息能及时反馈回来,那么网络就是通的。

3.TCP与UDP协议的区别

虽然TCP与UDP都是属于传输层协议,作用也相同,但是这两者还是有比较大的差异的,具体如表3.2所示。

表TCP与UDP的区别

在这里插入图片描述

HTTP协议

====================================================================

初识HTTP


HTTP(HyperText Transfer Protocol,超文本传输协议)是一个应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。HTTP协议的主要特点可概括如下:

l 支持客户/服务器模式。

l 简单快速:客户向服务器请求服务时,只需传送请求方法和路径;请求方法常用的有GET、HEAD、POST,每种方法规定了客户与服务器联系的类型不同;由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

l 灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。

l 无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。

l 无状态:HTTP协议是无状态协议,无状态是指协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大;另一方面,在服务器不需要前面的信息时它的应答就更快。

HTTP协议永远都是客户端发起请求,服务器回送响应,具体如图3.7所示。

在这里插入图片描述

图HTTP协议

URL


HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源足够的信息)的格式示例如下:

http://host[":"port][abs_path]

l http:表示要通过HTTP协议来定位网络资源。

l host:表示合法的Internet主机域名或者IP地址。

l port:指定一个端口号,为空则使用缺省端口80。

l abs_path:指定请求资源的URI,如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动完成。

URL示例如下:

1、输入:www.1000phone.com

浏览器自动转换成:http://www.1000phone.com /

2、http:127.0.0.1:8080/index.html

HTTP请求与响应


HTTP是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,绝大多数的Web开发,都是构建在HTTP协议之上的。

1.HTTP请求

http请求由三部分组成,分别是:请求行、消息报头、请求正文。其中请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式示例如下:

Method Request-URI HTTP-Version CRLF

l Method表示请求方法

l Request-URI是一个统一资源标识符

l HTTP-Version表示请求的HTTP协议版本

l CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)

其中常用的请求方法及解释如表3.3所示。

表 常用请求方法及解释

在这里插入图片描述

消息报头在下一节详细介绍,请求正文是客户向服务器请求的内容主体。

2.HTTP响应

在接收和解析请求消息后,服务器返回一个HTTP响应消息;HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文。其中状态行格式示例如下:

HTTP-Version Status-Code Reason-Phrase CRLF

l HTTP-Version表示服务器HTTP协议的版本

l Status-Code表示服务器发回的响应状态代码

l Reason-Phrase表示状态代码的文本描述。

其中状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

l 1xx:指示信息——表示请求已接收,继续处理。

l 2xx:成功——表示请求已被成功接收、理解、接受。

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

l 4xx:客户端错误——请求有语法错误或请求无法实现。

l 5xx:服务器端错误——服务器未能实现合法的请求。

常见的状态代码、描述及其说明如表3.4所示。

表3.4 常见的状态码、描述及说明

在这里插入图片描述

消息报头同样在下一小节详细介绍,响应正文是服务器返回的资源内容。

HTTP消息报头


HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(请求消息:请求行;响应消息:状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头,每一个报头域都是由“名字+ :+空格+值”组成,消息报头域的名字是不区分大小写的。接下来一一讲解这四种报头。

1.普通报头

在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。

Cache-Control用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制)。

请求时的缓存指令包括:no-cache(用于指示请求或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage。

Date普通报头域表示消息产生的日期和时间。

Connection普通报头域允许发送指定连接的选项。例如:指定连接是连续,或者指定“close”选项,通知服务器,在响应完成后,关闭连接。

2.请求报头

请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。常用的请求报头如表所示。

表 常用的请求报头

在这里插入图片描述

请求报头示例如下:

GET /form.html HTTP/1.1 (CRLF)

Accept:image/gif,image/x-xbitmap,image/jpeg,

application/x-shockwave-flash,application/vnd.ms-excel,

application/vnd.ms-powerpoint,application/msword,/ (CRLF)

Accept-Language:zh-cn (CRLF)

Accept-Encoding:gzip,deflate (CRLF)

If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)

If-None-Match:W/“80b1a4c018f3c41:8317” (CRLF)

User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)

Host:www.guet.edu.cn (CRLF)

Connection:Keep-Alive (CRLF)

(CRLF)

3.响应报头

响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。

常用的响应报头如表所示。

表 常用的响应报头

在这里插入图片描述

4.实体报头

请求和响应消息都可以传送一个实体;一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文和请求所标识的资源的元信息。

常用的实体报头如表所示。

表 常用的实体报头

在这里插入图片描述

Socket编程

======================================================================

前端面试题汇总

JavaScript

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

性能

linux

前端资料汇总

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值