用户登录
用户注册

分享至

http协议

  • 作者: 壹个沒心沒肺旳钕人
  • 来源: 51数据库
  • 2020-08-06

HTTP 介绍 :
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web ) 服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 1、HTTP 工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请 求。
Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。 Web服务器根据接收到的请求后,向客户端发送响应信息。 HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

HTTP三个特点:

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

HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过 HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

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

HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空 行和请求数据四个部分组成。

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。


重点方法:
GET:单纯获取数据(获取一个index.html页面)

POST:上传/创建文件(会产生新的数据)

PUT:保存数据(覆盖/更新文件、图片等,不会产生新的数据)
DELETE:删除

HTTP 状态码 ——
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在 的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

403 - 服务器理解请求客户端的请求,但是拒绝执行此请求

500 - 内部服务器错误

HTTP状态码分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。

HTTP状 态码共分为5种类型:

1开头(临时响应):指临时性的响应,需要执行者继续操作即可解决的状态码,出现这种概率相对比较低。

100 表示请求者需要继续提出请求。 表示已收到请求的第一部分,正在等待其余部分,一个字“慢”。

101 表示请求者要求服务器切换协议,服务器收到请求并且即将切换。

2开头(成功):指已经成功地处理了请求,用户可以正常的打开了这个页面。

200 表示服务器已成功处理了请求。顺利地完成任务,正常网站基本上都是这种状态码。

201 表示请求成功而且服务器重新创建了资源。

202 表示服务器已接受请求,但还没有处理。

203 服务器已成功处理了请求,但返回的信息可能来自另一来源。

204 表示服务器成功处理了请求,但没有反馈任何内容。

205 表示服务器成功处理了请求,但没有返回任何内容。

206 表示服务器成功处理了一部分 GET 请求。

3开头(重定向):指要完成请求,需要进一步操作,这些状态码通常是做了重定向展现的。

300 表示针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。

301 被请求的资源永久地移动到新的固定的位置。

302 被请求的资源临时性地响应了用户请求,这个状态码是有问题的,对于搜索引擎来说是不友好的。

303 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

304 自从上次请求后,请求的网页未做任何修改。 服务器做出响应时,不会返回网页内容。

305 如果服务器返回此响应,表示请求者只能使用代理访问请求的网页。

307 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4开头(请求错误):表示可能出错,妨碍了服务器的处理。

400 服务器搞不懂请求的语法

401 当前请求需要用户验证。

403 服务器拒绝请求。

404 请求的网页不存在,或者网页打不开。

405 禁用请求中指定的方法。

406 无法使用请求的内容特征响应请求的网页。

407 此状态代码与 401(未授权)差不多,但要求请求者应当授权使用代理。

408 服务器等候请求时发生超时。

409 服务器在完成请求时发生冲,因为服务器响应中包含有关冲突的信息。

410 如果请求的资源已永久删除,服务器返回此状态码。

411 服务器不接受没有包含效内容长度标头字段的请求。

412 服务器未满足请求者在请求中设置的其中一个条件。

413 服务器无法处理请求,因为该请求超出服务器的载荷。

414 请求的 URI(通常为网址)过长,服务器无法处理,这个连蜘蛛都不抓取。

415 请求的格式和求页面不兼容。

416 如果页面无法提供请求的范围,服务器返回的状态代码。

417 服务器未满足"期望"请求标头字段的要求。

5开头(服务器错误):指服务器在处理请求时内部发生错误。可能是服务器自身问题,而不是请求者操作失误造成的,可以找空间商咨询解决。

500 服务器内部错误,程序码出错时出现。

501 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

503 服务器不可用,(服务器超载或正在维护)

504 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 服务器不支持请求中所用的 HTTP 协议版本

 

原文链接:http://www.cnblogs.com/wyglog/p/12448111.html

软件
前端设计
程序设计
Java相关