HTTP协议——学完之后的总结(下)

前言:

学完了《图解HTTP协议》还是需要好好写一篇博客来着,不然又会忘了,等后面再用c语言或者c++写一个http服务器,这样可以好哈的加深一下印象,并且后面的校招面试里可以好好的说一下自己的项目了。

我的github:

github又快一个月没有更新过了,不过现在已经做了200题,按照一天3题的速度应该一个月可以做完第一遍吧。

https://github.com/YinWenAtBIT

一、HTTP返回状态码:

HTTP的状态码用来描述返回请求的结果,借助状态码,用户可以知道服务器对于请求的处理情况。

状态码在状态行中,首先是HTTP版本,其次是状态码,最后是原因,比如:

HTTP/1.1 200 OK

1.1:2xx成功:

2xx 代表请求被正常处理了。

200 OK,代表请求完成正常,一般是GET请求或者HEAD请求。

204 No Content,代表请求正常,但是没有需要的资源可以返回,也不允许返回资源。

206 Partial Content, 代表对部分资源的请求成功,服务器返回了部分资源。

1.2:3xx重定向:

301,Moved Permanently永久重定向,资源已经被分配了新的URI。新的URI保存在首部的Location中。

302,Found, 临时性重定向,该状态码表示请求的资源已经被分配了新的URI,希望本次用户使用新的URI访问。302与301的不同在于资源只是临时性变动,以后可能还会在变动

303,See Other,该状态码表示请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。303与302有相同的功能,但是303表示客户端应该使用GET方法获取资源。

304, Not Modified,304对应的请求是使用GET方法访问,并且首部带有If-Match等方法,请求的结果是没有满足条件的资源。该状态码和重定向无关。

307, Temporary Redirect,临时重定向,与302基本相同。 

1.3:4xx客户端错误:

4XX的相应结果代表客户端是发生错误的原因所在。

400 Bad Request,请求报文中含有语法错误。

401 Unauthorized,未认证,需要经过HTTP认证才可以处理该请求,如果之前已经进行过一次请求,则表示用户认证失败。

403 Forbidden, 该状态码表示对服务器资源你的请求被服务器拒绝了,但是没有给出拒绝的原因。,未授权访问等都可能导致403出现。

404 Not Found,该状态码表示服务器上无法找到请求的资源,除此之外,也可以是服务器拒绝请求并且不想说明理由。

1.4:5xx服务器错误:

500 Internal Server Error, 代表服务器端在处理请求是发生了错误,也有可能是Web端应用的Bug 出现了。

503 Service Unavailable,该状态码表明服务器处于超负载或正在进行停机维护,现在无法处理需求。如果实现知道处理好问题的时间,可以写如Retry-After首部字段返回给客户端。

注意:不少返回的状态码是错误,但是用户可能察觉不到这一点,比如web程序内部错误,但是依旧返回200 OK。

二、HTTP与web服务器:

2.1:单台虚拟主机实现多个域名:

由于经过DNS协议解析,域名会变成ip地址,因此在HTTP请求的首部必须指明HOST字段,才可以完成此功能。

2.2:代理,网关,隧道:

1.代理转发客户的HTTP请求,有时会进行缓存,代理按照是否使用缓存,是否修改报文分类。

2.网关,工作原理和代理相似,但是网关能使用非HTTP协议与真正的服务器通信。

3. 隧道,隧道可按照要求建立起一条与其他服务器通信的线路,届时使用SSL加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。

三、HTTP报文首部:

3.1:首部字段:

首部字段由首部字段名和字段值构成,中间用冒号分割,并且每个字段名可以对应多个字段值。

3.2:通用首部字段:

1. Cache-Control:控制缓存的工作机制,缓存有效时间等等。其中no-cache代表不能缓存过期的资源,no-store代表不使用缓存。

2. Connection:主要用于管理持久链接,指定Keep-Alive可以进行持久链接,指定close关闭。

3. Date, 表明创建HTTP报文的日期和时间。

4. Trailer,知名在报文主体之后记录了哪些字段。

5. Transfer-Encoding,规定了报文主体传输时所使用的编码方式,1.1版本仅对分块传输有效。

6. Upgrade, 用于检测HTTP协议及其他协议是否可以使用更高级的版本进行通信。

7. Via,用于追踪客户端与服务器之间的请求和相应报文的传输途径。

3.3:请求首部字段:

1. Accept,可以接收的媒体类型和优先级。

2. Accept-Charset,接受的字符集

3. Accept-Encoding,接受的内容编码,例如gzip,compress,deflate等

4. Accept-Language,接受的自然语言集。

5. Authorization, 认证信息,在接收了401回复之后,会将认证信息保存在这个字段中发给服务器。

6. Expect,客户端期望服务器出现某种特定行为。

7. From,告知服务器使用用户代理的用户的电子邮件地址。

8. Host,告知服务器,客户请求的资源所处的互联网主机名和端口号。

9. If-Match,条件请求,服务器只有判定条件为真时,才会处理请求。

10. Range,请求该资源的部分指定字节。如果服务器成功处理,则返回206Partial Content,无法处理范围请求时,则返回200 OK,并且返回全部内容。

等等,不再一一列举。

3.4:响应首部字段:

1.Location, 将相应接收方引导至某个与请求URI位置不同的资源,一般会配合3XX的重定向。

2. Server,返回服务器上所使用的HTTp服务器应用程序的信息。

3. WWW-Authenticate, 告知客户端使用特定的认证方案、

3.4:cookie相关字段:

1. Set-Cookie,当服务器准备开始管理客户端状态的时候,会实现告知各种消息,包括过期时间,路径,domain即可以使用的域名区域,secure(只有在https才可以发送cookie)

2. Cookie,客户端想要获得HTTP状态管理时,就会在请求中包含从服务器接收到的Cookie,接收到多个cookie时,同样可使用多个cookie发送。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值