1. 以下关于HTTP说法正确是的:(题目来源)
A. HTTP POST方式比GET更安全
B. HTTP GET请求提交参数没有长度限制
C. HTTP POST请求提交参数没有长度限制
D. HTTP GET和POST请求提交参数都没有长度限制
AC
分析:HTTP协议是应用层协议,是一种客户端和服务器端数据传输的一种协议,是面向事务的,无状态的一种协议。
考点一 :HTTP协议特点(参考链接1)
(1)无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(2)无状态的:对于事务处理【面向事务的】没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
(3)简单快速灵活 (4)支持B/S 和C/S。 (5)面向文本的,因此各个字段的长度不确定
考点二:三次握手和四次挥手(参考链接2)。
建立一条TCP连接需要(3)个步骤,关闭一个TCP连接需要(4)个步骤。
三次握手[连接建立阶段]:(1)Client向Server发送请求连接消息(SYN码)
(2)S向C发送收到请求消息,SYN+ACK(密码)
(3)C接收S的码并验证 SYN+ACK是否正确,正确则建立连接。建立的连接是TCP连接。
四次挥手[报 文传送阶段]:(1)Client向Server发送FIN 报文传输完毕消息。
(2)S向C发送ACK,报文接收完毕消息 【接收完,处理消息,再发送C要求的数据给C】
(3)S向C发送FIN,报文传输完毕消息
(4)C向S发送ACK,报文接收完毕消息。
三次握手和四次挥手保证数据安全和完整。
考点三:报文种类请求报文和响应报文
HTTP协议中有两种报文:(1)请求报文 :C向S发送请求报文 (2)响应报文:从S到C的回答
其中请求报文中包含一些方法,HTTP1.0中是GET/POST/HEAD 。HTTP1.1中是8种方法,新增了5种 OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
请求报文一共包括3个部分:请求行、首部行[+空行]、实体主体。如果说四部分,那就是 请求行、首部行、空行、实体主体。【谢希仁教材是三个部分,将空行未归入其中】。
请求报文部分组成。
请求报文具体例子。
响应报文组成:状态行、首部行[+空行]、实体主体。
常见的状态码: 1xx 通知信息(正在处理)
2xx:成功 3xx:重定向,如完成请求还需要采取下一步动作 4xx:客户端的差错 5xx:服务器端差错
- 200 接受,正常返回数据。
- 204:请求被受理但没有资源可以返回
- 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源
- 301:永久性重定向
- 302:临时重定向 (请求的网页已临时移动到新位置)
- 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
- 304:发送附带条件的请求时,条件不满足时返回,与重定向无关。(未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
- 307:临时重定向,与302类似,只是强制要求使用POST方法
400 客户端错误,请求的参数无效(语法错误)
401:请求需要认证
403 客户端错误,请求的权限限制。【禁止访问】
404 客户端出错,请求的资源不存在
500 内部服务器错误。Web服务器遇到阻止其返回请求的网页的问题时,会发生此错误。
502 服务器挂了 服务器从其为满足请求而访问的上游服务器接收到无效响应。【后端计算机之间的IP通信不畅】上游服务器已关闭(对网关/代理无响应),而是上游服务器与网关/代理在交换数据的协议上不一致。鉴于Internet协议非常明确,通常意味着一台或两台计算机的编程错误或不完整。
503 服务器正忙
参考 : https://www.nowcoder.com/profile/564725626/test/36611460/501232#summary
常见错误状态和解决办法:https://www.checkupdown.com/status/E403_zh.html 【拉到底部看其他的】
考点四:GET/POST不同之处
GET 方法提交的数据会直接填充在请求报文的URL上。如“ https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1 ” “?”问号划分域名和get提交的参数,A=B中的A是参数名,B是参数值,多个参数之间用&进行分割,如果参数值是中文,则会转换成诸如%ab%12加密16进制码。一般来说,浏览器处理的URL最大限度长度为1024B(不同浏览器不一样),所以GET方法提交参数长度有限制。 POST方法提交的数据会附在正文上,一般请求正文的长度是没有限制的,但表单中所能处理的长度一般为100k(不同协议不同浏览器不一样),而且需要考虑下层报文的传输效率,不推荐过长。POST方法提交参数的长度没有限制。
从提交参数长度角度来说,POST没有限制,GET有。
GET方法可以用来传输一些可以公开的参数信息,解析也比较方便,如百度的搜索的关键词,而POST方法可以用来提交一个用户的敏感信息(如果不使用HTTPS加密,报文正文仍旧是明文,容易被人截获读取)。
安全性角度来说,POST更安全。
一些其他比较可见:https://www.cnblogs.com/weibanggang/p/9454581.html
2.关于TCP协议的描述,以下错误的是?
A. 面向连接
B. 可提供多播服务
C. 可靠交付
D. 报文头部长,传输开销大
B
考点一:TCP和UDP对比
运输层:两台主机中进程之间的通信提供通用的数据传输服务。
传输控制协议TCP:提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段。
用户数据报协议UDP:提供无连接、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。
考点二:TCP特点
TCP最主要的特点:
(1)面向服务的:应用程序使用TCP协议之前,必须建立TCP连接。
(2)点对点传播:每一条TCP连接只能用两个端点。
(3)可靠交付:传送的数据无差错,不丢失,不重复并且按序到达
(4)提供全双工通信:允许通信双方应用进程在任何时候都能发送数据。TCP两端都设有发送缓存和接收缓存。应用程序在把数据传给TCP缓存时,可以做自己的事。
(5)面向字节流的:TCP把应用程序的数据看成是无结构的字节流。发送回的字节流大小可以和传送过来的不同。但是接收到的要和传送的相同。
一个TCP报文段分为:首部和数据两个部分。其中首部分为:20个固定字节+4n(根据需要增加的选项)。 报文头部长,传输开销大【正确】
考点三:单播、多播、广播
单播:一对一
多播:一对多
广播:村支书大喇叭通知事情。
https://www.cnblogs.com/CNHK1949/p/10680651.html
3. 用浏览器访问www.jd.com时,可能使用到的协议有?
A. MAC
B. HTTP
C. SMTP
D. ARP
E. RTSP
正确答案:A B D
MAC :802.11标准(无线局域网)中协议。
HTTP:应用层协议 (c-s)
SMTP:一种提供可靠且有效的电子邮件传输的协议
ARP:地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
RTSP:实时流式协议。本身不传输数据,是媒体播放器能够控制多媒体流的传送,RTSP又称为外带协议,以客户服务器方式工作,是应用层的多媒体播放控制协议。
4,网络结构中每一层常见的设备
物理层:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层传输的单位是比特。常见设备:中继器、集线器。
数据链路层:将网络层的IP数据报封装成帧进行传输。每一帧都包含必要的控制信息。因为在物理层传输的是“010101010”这样的二进制位,为了有效,因此需要数据链路层做这件事【对电信号来做分组的】。常见设备:网桥,交换机。
网络层:路由器,网关
5,数据链路层
三个工作:封装成帧、透明传输、差错检验
(1)封装成帧:帧 = 帧首部(SOH)+帧的数据(IP数据报)+帧尾部EOT
数据部分最长上限叫做最大传送单元MTU。
(2)透明传输:因为传送的过程中,帧的数据部分可能存在EOT(恰巧相同了)。那么此时需要忽略掉帧数据中的EOT。方法(字节填充、字符填充):在EOT前面+转义字符(ESC) 。
帧 = SOH + [.....EOT....EOT] +EOT => 帧 = SOH + [...ECS+EOT.....ECS+EOT] +EOT
(3)差错检验:传输过程中可能会出现错误,然后检查这个错误(比特差错)。
循环冗余校验(CRC):是在传输数据后面添加n位冗余码,构成一个帧发送出去。
(1)首先由接收方和传送方拟定一个P(x)。
(2)再M的末尾 加上 P(x)的最高阶个0。然后用 M+(000)r个 除以P。得到的余数就是冗余码。冗余码也叫作帧检验序列(FCS)。
一般题目给出的P(x) 是这样的形式: 。这代表除数为 1101。P(x)叫做生成多项式。
110001 有 6 位,因此代表了一个有 6 项的多项式,其系数分别为 1 、 1 、 0、 0、 0 和 1 。即 .
所以P的最高阶为3,因此在M后面添加3个0。假定M=101001 那么 被除数为 101001 000.
取三位的原因是因为P的最高阶为3,取的是r位冗余码。故为001。
所以最终的发送为 101001 001.
接收端:用接收到的除以P。
如果R=0,那么接受,无错误。
如果R 不等于0,那么就出错了。注意:不能确定发生错误点,可能好多位都发生错误了。如果仅有一位出错,那么就直接将余数转成10进制。10进制对应的位数就是错误的位数。这个例子可以看参考链接2.
参考:【1】https://www.jianshu.com/p/7f4fd7f62de2
【2】https://blog.csdn.net/sailist/article/details/83588406