第一天
1.TCP协议为了数据送达采用了什么策略?
TCP协议为了数据送达采用了三次握手的策略:“发送端先向接收端发送一个带SYN标志的数据包,接收端收到后在数据包上加个ACK标志和收到数据包的信息发给发送端,发送端接收到信息后再发送带有ACK的数据包”
2.URI与URL的区别和关系是?绝对URI的格式内容是?
URI是用字符串标识某一互联网资源,URL标识资源的地点,URL是URI的子集
绝对URI的格式:协议名+登陆信息+服务器地址+端口号+文件路径+查询字符串+片段标识符
3.http方法有哪些?各自作用是?
http方法:GET(获取资源);POST(传输实体主体);PUT(传输文件);HEAD(获取报文首部);DELETE(删除文件);OPTIONS(查询支持的方法);TRACE(追踪路径);CONNECT(要求用隧道协议连接代理);LINK(建立与资源之间的联系);UNLINE(断开连接关系)其中LINK和UNLINK已被http/1.1废弃
4.http是通过什么技术解决无状态问题?该技术是如何解决?
http是通过Cookie技术解决无状态问题。
Cookie技术会根据从服务端发送的响应报文里的Set_Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端再忘服务器发送请求时,客户端会自动在请求报文里加入Cookie值再发送,服务端发现接收客户端发送的Cookie后,会检查是从哪个客户端发来的请求,然后对比服务器上的记录,最后得到之前的状态信息。
第二天
1.请求报文的结构是?响应报文的结构是?
请求报文:请求行+请求头+请求正文
请求行:请求方法+URL+协议版本
请求头:请求首部字段+通用首部字段+实体首部字段
(常见的请求头:
Host:接受请求的服务器地址,可以是IP:端口号,也可以是域名
User-Agent:发送请求的应用程序名称
Connection:指定与连接相关的属性,如Connection:Keep-Alive
Accept-Charset:通知服务端可以发送的编码格式
Accept-Encoding:通知服务端可以发送的数据压缩格式
Accept-Language:通知服务端可以发送的语言)
请求正文:请求数据
响应报文:状态行+响应头+响应正文
状态行:协议版本+状态码+状态码描述
响应头:响应首部字段+通用首部字段+实体首部字段
(常见的响应头:
Server:服务器应用程序软件的名称和版本
Content-Type:响应正文的类型(是图片还是二进制字符串)
Content-Length:响应正文长度
Content-Charset:响应正文使用的编码
Content-Encoding:响应正文使用的数据压缩格式)
响应正文:响应数据
第三天
1.常见http状态码及其含义是?
常见http状态码以1xx,2xx,3xx,4xx,5xx开头,其分别的意义是:
1xx: Informational(信息性状态码):接收的请求正在处理
2xx:Success(成功状态码):请求正常处理完毕
3xx:Redirection(重定向状态码):需要进行附加操作以完成请求
4xx:Client Error(客户端错误状态码):服务器无法处理请求
5xx:Server Error(服务器错误状态码):服务器处理请求错误
具有代表性的状态码:
200:OK;客户端发来的请求在服务器被正常处理
204:No Content;客户端发来的请求在服务器被正常处理,但返回的响应报文中不含实体的主体部分
206:Partial Content;客户端进行了范围请求,服务器成功执行了这部分的GET请求
301:Moved Permanently;请求的资源已被分配了新的URI,以后应使用资源现在所指的URI
302:Found;请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问
303:See Other;由于请求对应的资源存在另一个URI,应使用GET方法定向获取的资源
304:Not Modified;客户端发送附带条件的请求时,服务端允许请求访问资源,但未满足条件
307:Temporary Redirect;与302有相同的含义
400:Bad Request;请求报文中存在语法错误
401:Unauthorized;发送的请求需要有通过HTTP认证的认证信息
403:Forbidden;请求资源的访问被服务器拒绝了
404:Not Found;服务器上无法找到请求的资源
500:Internal Server Error;服务器端在执行请求时发生了错误
503:Service Unavailable;服务器暂时处于超负载或正在进行停机维护
2.代理的工作机制是?
代理相当于在客户端和服务端中当一个中间人的作用,接收由客户端发送的请求并转发给服务端,同时也接受服务端返回的响应并转发给客户端
同时代理有缓存代理、透明代理和非透明代理
缓存代理(也叫缓存服务器):缓存代理会预先将资源的保存在代理服务器上,当代理再次收到相同的资源的请求时,就可以不从源服务器上获取资源,而是将之前缓存的资源作为响应返回。
透明代理和非透明代理:转发请求或响应时,不对报文做任何加工,反之,对报文内容进行加工的就是非透明代理
3.缓存的作用是?
缓存是指代理服务器或客户端本地磁盘内保存的资源副本,利用缓存可减少对源服务器的访问,因此也就减少了通信流量和通信时间
缓存是有有效期限的,缓存代理会向源服务器确认资源的有效性,若判断缓存失效,将会再次从源服务器上获取“新”资源。客户端缓存(浏览器缓存)也是如此
第四天
通用首部字段:
Cache-Control:控制缓存的行为【
请求指令:
no-cache(参数:无):强制向源服务器再次验证
no-store(参数:无):不缓存请求或响应的任何内容
Max-age=[秒](参数:必需):响应的最大Age值
Max-stale(=[秒])(参数:可省略):接受已过期的响应
Max-fresh=[秒](参数:必需):期望在指定时间内的响应仍有效
No-transform(参数:无):代理不可更改媒体类型
Only-if-cached(参数:无):从缓存获取资源
Cache-extension: 新指令标记(token);样式:Cache-Control:privite,community=“UCI”
响应指令:
public(参数:无):可向任意方提供响应的缓存
Private(参数:可省略):仅向特定用户返回响应
No-cache(参数:可省略):缓存前必须先确认其有效性
No-store(参数:无):不缓存请求或响应的任何内容
No-transform(参数:无):代理不可更改媒体类型
Must-revalidate(参数:无):可缓存但必须再向服务器进行确认
Proxy-revalidate(参数:无):要求中间缓存服务器对缓存的响应有效性再进行确认
Max-age=[秒](参数:必需):响应的最大Age值
S-maxage=[秒](参数:必需):公共缓存服务器响应的最大Age值
Cache-extension:新指令标记(token));样式:Cache-Control:privite,community=“UCI”】
Connection:逐跳首部、连接的管理
Date:创建报文的日期时间
Pragma:报文指令
Trailer:报文末端的首部一览
Transfer-Encoding:指定报文主体的传输编码方式
Upgrade:升级为其他协议
Via:代理服务器的相关信息
Warning:错误通知
1.http协议请求头作用是什么?几个常见的请求头?
请求头是从客户端向服务器发送请求报文时使用的首部,补充了请求的附加内容、客户端信息、响应内容相关优先级等信息
常见的请求头:
Accept:用户代理可处理的媒体类型
Accept-Charset:优先的字符集
Accept-Encoding:优先的内容编码
Accept-Language:优先的语言
Authorization:Web认证信息
Expect:期待服务器的特定行为
From:用户的电子邮箱地址
Host:请求资源所在服务器
If-Match:比较实体标记(ETag)
If-Modified-Since:比较资源的更新时间
If-None-Match:比较实体标记(与If-Match相反)
If-Range:资源未更新时发送实体Byte的范围请求
If-Unmodified-Since:比较资源的更新时间(与If-Modified-Since相反)
Max-Forwards:最大传输逐跳数
Proxy-Authorization:代理服务器要求客户端的认证信息
Range:实体的字节范围请求
Referer:对请求种URI的原始协助力
TE:传输编码的优先级
User-Agent:HTTP客户端程序的信息
2.http协议响应头作用是什么?几个常见的响应头?
响应头是从服务端向客户端返回响应报文的首部,补充了响应的附加内容、也会要求客户端附加额外的内容信息
常见的响应头:
Accept-Range:是否接受字节范围请求
Age:推算资源创建经过时间
ETag:资源的匹配信息
Location:令客户端重定向至指定URI
Proxy-Authenticate:代理服务器对客户端的认证信息
Retry-After:对再次发起请求的时机要求
Server:HTTP服务器的安装信息
Vary:代理服务器缓存的管理信息
WWW-Authenticate:服务器对客户端的认证信息
3.实体首部字段的作用是什么?几个常见的首部字段?
实体首部字段是针对请求报文和响应报文的实体部分使用的信息,作用是用于补充内容的更新时间等与实体相关的信息
常见的首部字段:
Allow:用于通知客户端能够支持Request-URI指定资源的所有HTTP方法,当服务器收到不支持的HTTP方法时,会以状态码405作为响应返回,同时还会把所有能支持的HTTP方法写入首部字段Allow返回。
Content-Encoding:告知客户端服务器对实体的主体部分选用的内容编码方式。内容编码方式指在不丢失实体信息的前提下所进行的压缩,主要采用4种内容编码方式:1.gzip;2.compress;3.deflate;4.identity
Content-Language:实体主体的自然语言
Content-Length:实体主体的大小
Content-Location:替代对应资源的URI
Content-MD5:实体主体的报文摘要
Content-Range:实体主体的位置范围
Content-Type:实体主体的媒体类型
Expires:实体主体过期的日期时间
Last-Modified:资源的最后修改日期时间
第五天
1.https的优点是什么?
使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。由于HTTPS是将HTTP+加密+认证+完整性保护形成的,因此HTTPS协议由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性;
2.https的缺点是什么?
相同网络环境下,HTTPS协议比HTTP网络负载可能会慢到2到100倍,另外SSL必须进行加密处理,在服务器和客户端都需要进行加密和解密的运算处理。比HTTP会更多地消耗服务器和客户端的硬件资源,导致负载增强。
HTTPS协议的安全是有范围的,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。
从成本方面看1. SSL的专业证书需要购买,功能越强大的证书费用越高。个人网站、小网站可以选择入门级免费证书;2. SSL 证书通常需要绑定 固定IP,为服务器增加固定IP会增加一定费用;3. HTTPS 连接服务器端资源占用高较高多,相同负载下会增加带宽和服务器投入成本;
3.http常用的认证方法有哪些?
http常用的认证方法有:BASIC认证、DIGEST认证、SSL客户端认证、FormBase认证
BASIC认证:
是从HTTP/1.0就定义的认证方式,是Web服务器与通信客户端之间进行的认证方式(客户端发送请求,服务端返回401要求认证,客户端将用户id和密码以Base64方式编码后发送,服务器认证成功后返回200成功状态码失败则返回401)
DIGEST认证:
为弥补Basic认证存在的弱点,从HTTP/1.1起就有了DIGEST认证,其同样使用质询/响应的方式,但不会像BASIC认证那样直接发送明文密码。(客户端发送请求,服务端发送临时的质询码(随机的)和401状态码要求认证,客户端发送摘要以及质询码计算出的响应码,服务器认证成功后返回200成功状态码失败则返回401)
SSL客户端认证:
是借由HTTPS的客户端证书完成认证的方式。凭借客户端证书认证,服务器可确认访问是否来自己登陆的客户端。