美文网首页
HTTP协议

HTTP协议

作者: Mr_不靠谱_先森 | 来源:发表于2017-07-12 00:46 被阅读7次

    特性

    • 基于TCP/IP协议之上,默认端口80
    • 无连接无状态的

    报文

    请求报文

    Http协议规范把请求分为三个部分:状态行 请求头 消息主体

    <method> <request-URL> <version>
    <headers>
    
    <entity-body>
    

    通用头信息

    通用头域包含缓存头部Cache-Control、Pragma及信息性头部Connection、Date、Transfer-Encoding、Update、Via

    • Cache-Control
    • Connection 表示是否需要持久连接 Keep-Alive:如果浏览器请求保持连接,则该头部表明希望 WEB 服务器保持连接多长时间(秒),如Keep-Alive:300
    • Date Date头域表示消息发送的时间,服务器响应中要包含这个头部,因为缓存在评估响应的新鲜度时要用到,其时间的描述格式由RFC822定义。例如,Date:Mon, 31 Dec 2001 04:25:57 GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。
    • Transfer-Encoding WEB 服务器表明自己对本响应消息体(不是消息体里面的对象)作了怎样的编码,比如是否分块(chunked),例如:Transfer-Encoding: chunked

    请求头

    • accept 告诉服务起自己接受什么介质类型
    • Accept-Encoding 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)
    • Host 客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号
    • User-Agent 浏览器表明自己的身份(是哪种浏览器)。例如:User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN;rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

    HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE

    get与post区别

    本质上的区别:本质上都是TCP链接 get产生一个TCP数据包,post产生两个数据包
    get请求会把http header 和 data 一并发送出去,服务器相应200;
    post请求浏览器先发送header 服务器响应100,继续 在发送data,服务器响应200ok
    语义上的区别:get用于获取数据,post用于提交数据。
    get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制),而post无限制
    安全性区别:get明文 不安全 post安全

    响应报文

    HTTP 响应与 HTTP 请求相似,HTTP响应也由3个部分构成,分别是:

    状态行
    响应头(Response Header)

    • Server
      WEB 服务器表明自己是什么软件及版本等信息。例如:Server:Apache/2.0.61 (Unix)
      响应正文

    常见的状态码有如下几种:

    • 200 OK 客户端请求成功
    • 301 Moved Permanently 请求永久重定向
    • 302 Moved Temporarily 请求临时重定向
    • 304 Not Modified 文件未修改,可以直接使用缓存的文件。
    • 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。
    • 401 Unauthorized 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
    • 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
    • 404 Not Found 请求的资源不存在,例如,输入了错误的URL
    • 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。
    • 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

    ![Upload image.png failed. Please try again.]

    相关文章

      网友评论

          本文标题:HTTP协议

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