美文网首页
HTTP协议

HTTP协议

作者: 小七饮酒 | 来源:发表于2018-12-23 14:29 被阅读0次

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

    HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

    HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。

    一.发起HTTP请求
    在地址栏输入url再回车,就发起了HTTP请求,然后会看到请求的结果。

    url(统一资源定位符)也称网页地址,是互联网标准地址。
    协议://服务器ip[:端口]/路径/[?查询]

    如,http://www.aaa.com/post/httpxieyi.html 就是一个标准的url。

    HTTP详解
    HTTP是一种无状态协议,无状态是指web浏览器与web服务器之间不需要建立持久的连接,客户端向服务器端发送请求,然后web服务器返回响(Reponse),就关闭连接,在服务器不保留连接有关的信息,HTTP请求只能由客户端发起,而服务器不能主动的向客户端发送数据。

    HTTP遵循请求(Request)/应答(Reponse)模型,web浏览器向web服务器发送请求时,web服务器处理请求并返回相应的应答。 image

    1.HTTP请求与响应
    (1)HTTP请求
    HTTP主要包括三个部分,分别是请求行(请求方法),请求头(消息报头)和请求正文。

    HTTP/1.1 200 OK
    Date: Fri, 22 May 2009 06:07:21 GMT
    Content-Type: text/html; charset=UTF-8

    <html>
    <head></head>
    <body>

    </body>
    </html>

    第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

    第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
    第二部分:消息报头,用来说明客户端要使用的一些附加信息

    第二行和第三行为消息报头,
    Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
    第三部分:空行,消息报头后面的空行是必须的
    第四部分:响应正文,服务器返回给客户端的文本信息。

    空行后面的html部分为响应正文。

    2.HTTP请求方法
    HTTP请求方法非常多,其中get,post最常见。

    (1)GET请求
    get方法用于获取请求页面的指定信息(以实体的格式),如果请求资源为动态脚本,返回文本是web容器解析后HTML源代码,而不是源文件

    GET /books/?sex=man&name=Professional HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Connection: Keep-Alive
    (2)POST请求
    post方法和get方法相似,区别在于,get方法没有请求内容,而post是有请求内容的。post最多用于向服务器发送大量数据,但是get有大小长度限制,并且get会将发送的数据显示在浏览器上,而post不会,所以安全性相对高一点。

    POST / HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive

    name=Professional%20Ajax&publisher=Wiley

    3.HTTP状态码
    当客户端发送请求,服务器端接收后,会向客户端发送信息,其中,HTTP响应的第一行中,最重要的一点就是状态码,

    HTTP/1.1 200 OK
    此状态码为200,在HTTP协议中表示请求成功。HTTP状态码由三位数字组成第一位定义了相应的类别,且只有五种。

    • 1xx:信息提示,表示请求已被成功接收,继续处理。其范围100~101.
      *2xx:成功,服务器成功的处理了请求。其范围200~206.
      *3xx:重定向,资源已被移动,并告知客户端新的资源地址位置。这时,浏览器将重新对新资源发起请求。其范围300~305。
      *4xx:客户端错误状态码,有时客户端发送服务器无法处理的东西,比如格式错误的请求,或者最常见的是,请求一个不存在的url。其范围是400~415。
      *5xx:有时客户端发送了有效的请求,但web服务器自身出错了,可能是web服务器运行出错了,或者网站都挂了。5xx用来描述服务器内部错误的,其范围500~505.

    常见状态码:
    200:客户端请求成功,是最常见的状态。
    302:重定向。
    404:请求资源不存在,是最常见的状态。
    400:客户端请求有语法错误,不能被服务器理解。
    401:请求未经授权。
    403:服务器收到请求,但拒绝提供服务。
    500:服务器内部错误,是最常见的状态。
    503:服务器当前不能处理客户的请求,一段时间后可恢复正常。

    相关文章

      网友评论

          本文标题:HTTP协议

          本文链接:https://www.haomeiwen.com/subject/bqfnkqtx.html