HTTP相关协议指南(你可能最需要的完整版本都在这里)

来源:互联网 发布:配乐朗诵录音软件 编辑:程序博客网 时间:2024/06/06 17:38

HTTP协议指南

1.HTTP协议

HTML 是构建网页的语言,HTTP 是网页的传输协议,两者结合,构成了 WEB 应用开发的基础。

 HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议,设计 HTTP 的最初目的是为了提供一种发布和接收 HTML 页面的方法。

数据传输协议示意图


  • 默认HTTP的端口号为80,HTTPS的端口号为443。
    http 协议是建立在 tcp/ip 协议基础上 。
    http 协议全称超文本传输协议 。
    http 协议1.0 , 1.1, 2.0版本,目前通用的是1.1版本
    http1.0 称为短连接
    http1.1 , http2.0 称为长连接.

  • 所谓长,和短指的是持续时间,
    长连接 http1.1 持续时间为30s ,
    短连接是发送完数据就断掉.

    SSL : Secure Sockets Layer 安全套接层, 需申请证书。

2 http的访问

url的组成


(1) 协议。http和https。
(2) 服务器。域名或IP地址。
(3) 端口。默认端口为80,Web服务器可以根据需要配置端口。
(4) 路径,服务器上所请求资源位置的路径。其中,appname为Web应用名称,path为路径。
(5) 资源,请求文档的名称。可以是HTML页面、Servlet、PDF文件、图像、音频文件或视频文件等服务器提供服务的文档类型。如果本部分省略,大多数服务器会默认查找index.html页面或设置的欢迎页面。
(6) 查询字符串。如HTTP GET,参数加到URL的末尾,以问号“?”起始,每个参数以“名=值”的形式出现,多个参数间用“&”分隔。

3 http请求

Http的八种请求动作:

  1. GET
    向特定的资源发出请求。

  2. POST
    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改

  3. PUT
    向指定资源位置上传其最新内容

  4. DELETE
    请求服务器删除Request-URI所标识的资源
    (最基本的记住前四个请求,他们分别代表增删改查)

  5. OPTIONS
    返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性

  6. HEAD
    向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息

  7. TRACE
    回显服务器收到的请求,主要用于测试或诊断

  8. CONNECT
    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

    常见的请求头标记列示如下:
    (1) GET或POST:请求类型,后接请求资源、协议和版本
    (2) Host:主机和端口
    (3) Connection:是否使用持续连接
    (4) User-Agent:客户端浏览器的名称
    (5) Accept:浏览器可接受的MIME类型
    (6) Accept-Encoding:浏览器知道如何解码的数据编码类型
    (7) Accept-Language:浏览器指定的语言
    (8) Accept-Charset:浏览器支持的字符编码
    (9) Cookie:保存的Cookie对象

4 http响应

利用谷歌浏览器
按下 F12 选择 network
记得点一下
在这里点击红点


这个按钮 再点一下F5
按F5


响应头用于指示客户端如何处理响应体,告诉浏览器响应的类型、字符编码和字节大小等信息。常用的响应头列示如下。

  • (1) Allow:服务器支持哪些请求方法(如GET、POST等)
    (2) Content-Encoding:文档的编码(Encode)类型。只有在解码之后才可以得到Content-Type头指定的内容类型
    (3) Content-Length:内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据
    (4) Content-Type:表示后面的文档属于什么MIME类型
    (5) Date:当前的GMT时间
    (6) Expires:文档过期时间
    (7) Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计
    (8) Server:服务器名称
    (9) Set-Cookie:设置与页面关联的Cookie
    (10) WWW-Authenticate:客户应该在Authorization头中提供的授权信息类型

5 响应状态

(1) 1xx消息:请求已被服务器接收,继续处理
(2) 2xx成功:请求已成功被服务器接收、理解、并接受
(3) 3xx重定向:需要后续操作才能完成这一请求
(4) 4xx请求错误:请求含有词法错误或者无法被执行
(5) 5xx服务器错误:服务器在处理某个正确请求时发生错误


常用的响应状态:

  • 100 Continue

    初始的请求已经接受,客户应当继续发送请求的其余部分
  • 101 Switching Protocols

    服务器将遵从客户的请求转换到另外一种协议
  • 200 OK

    一切正常,对GET和POST请求的应答文档跟在后面
  • 201 Created

    服务器已经创建了文档,Location头给出了它的URL。
  • 202 Accepted

    已经接受请求,但处理尚未完成。
  • 203 Non-Authoritative Information

    文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝
  • 204 No Content

    没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的
  • 205 Reset Content

    没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
  • 206 Partial Content

    客户发送了一个带有Range头的GET请求,服务器完成了它
  • 300 Multiple Choices

    客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
  • 301 Moved Permanently

    客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
  • 302 Found

    类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
  • 303 See Other

    类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取
  • 304 Not Modified

客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

  • 305 Use Proxy

    客户请求的文档应该通过Location头所指明的代理服务器提取
  • 307 Temporary Redirect

    和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原     来的请求是 POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码: 当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。
  • 400 Bad Request

      请求出现语法错误。
  • 401 Unauthorized

    客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
  • 403 Forbidden

    资源不可用。
  • 404 Not Found

    无法找到指定位置的资源

这下你知道有时候你浏览网站弹出404是什么意思了吧!

  • 405 Method Not Allowed

    请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
  • 406 Not Acceptable

    指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容
  • 407 Proxy Authentication Required

    类似于401,表示客户必须先经过代理服务器的授权。
  • 408 Request Timeout

    在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。
  • 409 Conflict

通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。

  • 410 Gone

    所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。
  • 411 Length Required

    服务器不能处理请求,除非客户发送一个Content-Length头。
  • 412 Precondition Failed

    请求头中指定的一些前提条件失败
  • 413 Request Entity Too Large

    目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头
  • 414 Request URI Too Long

    URI太长
  • 416 Requested Range Not Satisfiable

    服务器不能满足客户在请求中指定的Range头
  • 500 Internal Server Error

    服务器遇到了意料不到的情况,不能完成客户的请求

反正我比较常见的就是这两个错误了

  • 501 Not Implemented

    服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求
  • 502 Bad Gateway

    服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答
  • 503 Service Unavailable

    服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头
  • 504 Gateway Timeout

    由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答
  • 505 HTTP Version Not Supported

    服务器不支持请求中所指明的HTTP版本

6 响应体

响应体就是Web服务器发送到客户端的实际内容。
如:HTML页面,JSON,XML
响应体还可以是诸如Word、Excel或PDF等其他类型的文档,具体是哪种文档类型由Content-Type指定的MIME类型决定。

本文摘抄自尚学堂每日指南

阅读全文
0 0