zoukankan      html  css  js  c++  java
  • HTTP协议的理解

    HTTP 的特性

    • HTTP 协议构建于 TCP/IP 协议之上,是一个应用层协议,默认端口号是 80
    • HTTP 是无连接无状态的

    HTTP请求报文

    HTTP 协议是以 ASCII 码传输 , 建立在 TCP/IP 协议之上的应用层规范。

    规范把 HTTP 请求分为三个部分:

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

    HTTP 定义了与服务器交互的不同方法
    最基本的方法有4种: GET,POST,PUT,DELETE  对应着 查询 、 增加 、修改 、 删除 操作

    URL 可以理解为一个 地址。 

    注意:

    • GET 可提交的数据量受到URL长度的限制,HTTP 协议规范没有对 URL 长度进行限制。这个限制是特定的浏览器及服务器对它的限制
    • 理论上讲,POST 是没有大小限制的,HTTP 协议规范也没有进行大小限制,出于安全考虑,服务器软件在实现时会做一定限制
    • 参考上面的报文示例,可以发现 GET 和 POST 数据内容是一模一样的,只是位置不同,一个在 URL 里,一个在 HTTP 包的包体里

    响应报文

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

      状态行
      响应头(Response Header)
      响应正文

    状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

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

    • 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 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

    参考: https://hit-alibaba.github.io/interview/basic/network/HTTP.html

  • 相关阅读:
    flume和kafka整合(转)
    Flume目录
    Flume的安装配置
    HBase系统架构及数据结构(转)
    toolbar ,textfield,图片拉伸,Bundle
    poj 1017 Packets
    jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法
    Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护
    LintCode-落单的数 III
    LeetCode90:Subsets II
  • 原文地址:https://www.cnblogs.com/ajk4/p/12916877.html
Copyright © 2011-2022 走看看