面试-《图解HTTP》二
继上一篇总结HTTP知识点之后(https://www.jianshu.com/p/33edd42ebef9),这篇继续总结知识点
1.HTTP返回的状态码
HTTP返回状态码HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常,通知出现的错误等工作。数字第一位指定了响应的类型,后两位无差别,响应类型看下图
2.2XX 代表成功
- 200:请求OK
表示从客户端发来的请求在服务器端被正常处理了
- 204: 请求无链接
表示服务器接收的请求已成功处理,但是返回的响应报文中不含实体的主体部分,一般是用在从客户端往服务器发送消息,而对客户端不需要发送新信息内容的情况下使用
- 206: 请求特定内容
表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Cotent-Range指定范围的实体内容
3.3xx 重定向
3xx响应结果表明浏览器需要执行某些特殊的处理以正确处理请求
- 301: Moved Permanently
永久性重定向,表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI
- 302: Found
临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问
- 303 See Other
该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方向获取请求的资源
- 304 Not Modified
表示客户端访问服务器端时,不包含任何响应的主体部分
- 307 Temporary Redirect
临时重定向
4xx 客户端错误
4xx的响应结果表明客户端是发生错误的原因所在
- 400 Bad Request
表示请求报文中存在语法错误
- 401 Unauthorized
表示发送的请求需要有通过HTTP认证的认证信息
- 403 Forbidden
表示对请求资源的访问被服务器拒绝了
- 404 Not Found
表明服务器上无法找到请求的资源
5xx 服务器错误
5xx的响应结果表明服务器本身发生错误
- 500 Internal Server Error
表情服务器端在执行事发生了错误
- 503 Service Unavailable
表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
6.代理
- 代理的概念
代理是一种有转发功能的应用程序,接收由客户端发送的请求在转发服务器,同时也接收服务器返回的响应并转发给客户端
- 代理的特性
直接转发,代理不改变请求URI,每次通过代理服务器转发请求或者响应时。会追加写入Via首部信息
- 代理的优点
使用代理服务器的理由是:l y
- 代理分类
根据基准分类,一种是是否使用缓存,一种是否会修改报文
缓存代理:
-
代理图示
代理图示
7.网关
网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,他就像自己拥有资源的源服务器一样对请求进行处理
8.隧道
隧道是在相隔甚远的客户端和服务器之间进行中转,并保持对方通信连接的应用程序
9.HTTP首部
客户端跟服务器端使用HTTP协议进行通信,数据以报文形式进行传输,客户端发请求时的报文是HTTP请求报文,服务器响应的报文是HTTP响应报文
HTTP请求报文由HTTP请求报文首部(方法,URI,HTTP版本,HTTP首部字段)和HTTP请求报文主体组成。结构如下图:
HTTP请求报文结构图
HTTP响应报文由HTTP响应报文首部(HTTP版本,状态码,数字说明,HTTP首部字段)和HTTP响应报文主体组成,结构如下图:
HTTP响应报文结构图
10.HTTP报文首部字段
- HTTP报文首部字段概念
HTTP首部字段是构成HTTP报文的要素之一。在客户端与服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,他能起到传递额外重要信息的作用。首部字段是为了给浏览器和服务器提供报文主体大小,所使用的语言和认证信息等内容。
- HTTP报文首部字段结构
HTTP 报文首部字段是由首部字段名和字段值构成,中间用冒号:分隔,
首部字段结构.png
如果HTTP首部字段中出现两个或者两个以上具有相同首部字段名,处理方式根据浏览器而定。
- HTTP首部字段类型
- 通用首部字段(General Header Fields)
请求报文和响应报文都会使用的首部
通用首部字段样式如下:
通用首部字段.png
- 请求首部字段(Request Header Fields)
只能用于客户端向服务器端发送的请求报文中,目的是补充了请求的附件内容,客户端信息,响应内容相关优先级等信息
请求首部字段.png
- 响应首部字段(Response Header Fields)
只能用于从服务端向客户端返回的响应报文中,目的是补充了响应的附加内容,也会要求客户端附加额外的内容信息
响应首部字段.png
- 实体首部字段(Entity Header Fields)
针对请求报文和响应报文的实体部分使用的首部,目的是补充资源内容更新时间和实体相关信息
实体首部字段.png
此篇先记录到此,如有错误,请不吝赐教