zoukankan      html  css  js  c++  java
  • http协议与常见状态码

    什么是http:

    http是属于应用层(基于tcp的连接方式)的面向对象的协议,是计算机通过网络通信的规则,使得浏览器向web服务器请求信息和服务
    http协议特点:
    • http是一种无状态协议(对食物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,他必须重传)
    • 允许任意类型的数据对象,正在传输的类型由Content—Type加以标记
    • 无连接:限制每次连接只处理一个请求,服务器处理完客户的应答后,断开连接。
    • 支持c/s模式
    • 客户向服务器请求服务时,只需传送请求方法和路径
    完整的http请求:有7个步骤
    1建立tcp连接
    2web浏览器向web服务器发送请求命令
    3web浏览器发送请求头信息(在chrome下f12查看network中的headers)
    4web服务器应答
    5web服务器发送应答头信息
    6web服务器向浏览器发送数据
    7web服务器关闭tcp连接
     
    一个http请求的请求行一般由4部分组成:Method Request-URI HTTP-Version CRLF
    Method:http请求的方法或动作,比如是get还是post请求
    2正在请求的url(请求的地址
    3请求头,包含一些客户端环境信息,身份验证信息,版本信息等
    4请求体(请求正文,包含客户提交的查询字符串信息,表单信息等)
     
    get:
    一般用于信息获取,使用url传递参数,对所发送信息的数量也有限制,一般在2000个字符串
    post:
    一般用于修改服务器上的资源,对所发送信息的数量无限制
    一个get请求执行一次和执行1万次是一样的
     
    一个http响应由三部分组成:
    1一个数字和文字组成的状态码,用来显示请求是成功还是失败,
    2响应头,响应头也和请求头一样包含许多有用信息,例如服务器类型,日期时间,内容类型和长度
    3响应体(响应正文,服务器传过来的字符串,http代码
     
    http状态码由3位数字组成,首位数字定义了状态码的类型:
    1xx:信息类,表示收到web浏览器请求,正在进一步处理中
    2xx:成功,表示用户请求被争取接受,理解和处理例如:200
    ok
    3xx:重定向,表示请求没有成功,客户必须采取进一步动作
    4xx:客户端错误,表示客户端提交的请求有错误,例如:404not
    found。意味着请求中所引用的文档不存在
    5xx:服务器错误,表示服务器不能完成对请求的处理 如:500
     

    几种常见状态码

    200:OK 请求成功 处理方式:获得响应的内容,进行处理

    400:Bad Request 非法请求 处理方式:丢弃

    401:Unauthorized 未授权 处理方式:丢弃

    403:禁止 处理方式:丢弃

    404:没有找到 处理方式:丢弃

    500:服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

    502:bad gate 网关错误

    503:服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

    请求报头:

    Accept:用于指定客户端接受哪些类型的信息

    Accept—Charset:指定客户端接受的字符集

    Accept-Encoding:指定可接受的内容编码

    Accept—Language:指定一种自然语言。

    Authorization:请求报头域主要用于验证客户端有权查看某个资源

    Host:指定被请求资源的Internet主机和端口号

    响应报头:

    Location:响应报头域用于重定向接受者到一个新的位置,Location响应报头域常用在更换域名的时候

     Server:服务器用来处理请求的软件信息

  • 相关阅读:
    本地发送博客
    0.查看Android framework源码
    flutter_5_深入_2_深入layout、paint流程
    flutter_5_深入_1_深入widget树和构建流程
    flutter_5_深入_0_每帧的处理流程简介
    蓝牙基础
    Android低功耗蓝牙开发
    flutter2_widget_3布局类组件1
    flutter2_widget_1简介
    Android gradle Plugin
  • 原文地址:https://www.cnblogs.com/yuan233/p/10284399.html
Copyright © 2011-2022 走看看