• HTTP(一)


    读图解http有感;

    网络基础

    1. TCP/IP协议分层
      1. 应用层
      2. 传输层
      3. 网络层
      4. 链路层

    客户端通过http协议发送请求,告知我想要什么,
    这些信息需要通过链路层(物理层面,电脑,网线)传递给服务器;
    传输层TCP获取到应用层发来的http请求后,解析http请求,知道了客户端想要干嘛,,;传递给网络层;
    网络层IP则把获取到的信息打包成能在链路层传输的形式;进行网络传输;
    在链路层: 物理层面,电脑,主机,操作系统,网线;等等;
    信息从上到下,每过一层,都会有一层封装,到达接收端后从下到上,每到一层便会解封一层,获取自己需要的信息;

    TCP协议的三次握手:
    1.客户端:发送信息
    2.服务端: 收到信息了
    3.客户端: 我知道已收到信息了

    现在主流用的是http1.1

    Http://user:pass@www.baidu.com:8000/dir/index.html?uid=1
    协议名,登录信息(可选),域名,端口号(可选),文件路径,参数(查询字符串)

    Http是不保存状态的协议;

    http简介

    请求方法:

    1. GET: 获取资源
    2. POST: 传输实例主体(传输内容)
    3. PUT: 传输文件
    4. HEAD: 与get方法类似,去请求获取资源,但是并不会返回资源,而是返回资源的状态(有效性,更新时间等;)VB
    5. DELETE: 删除文件
    6. OPTION: 询问服务器支持的请求方法
    7. TRACE: 请求资源,有一个参数Max-Forwards,表示能够被代理转发的次数,服务器响应时会把之前的请求通信回环返回给客户端;(很少用)
    8. PATCH: PATCH方法对PUT方法的补充,用来对资源进行局部更新;

    持久链接:

    只要任意一端没有明确提出断开链接,则保持TCP网络链接状态;
    在HTTP1.1中,所有的连接默认都是持久链接;

    http协议是无状态协议为了保存客户端的状态,开发了cookie技术
    客户端: 第一次没有cookie信息的请求:
    服务端: 生成了cookie,记录状态,在响应报文中有Set-Cookie信息
    客户端: 第二次发送请求,会自动带上cookie信息;

    HTTP报文:

    http报文大致可以分为报文首部和报文主题
    报文首部: 请求或响应的属性;包括请求行(请求方法,url,http版本),状态行(状态码),首部字段,(各种条件和属性;)
    报文主题: 发送的数据;

    编码

    http在传输数据时,可以按照数据原貌直接传输,也可以通过编码再传输
    一般包括: 压缩传输的内容编码, 分割发送的分块传输编码

    http状态码;

    状态码有三位数字和原因短语组成
    三位数字中第一位表示类别,后两位无分类;

    状态码类别:

    1. 1XX: 信息性,请求正在处理
    2. 2XX: 成功,请求成功
    3. 3XX: 重定向,需要进行附加操作以完成请求
    4. 4XX: 客户端错误,服务器无法处理请求
    5. 5XX: 服务器错误,服务器处理请求出错

    只要遵守状态码类别的定义,改变状态码或自行创建都可以;

    代表性状态码

    1. 200 OK

    请求正常处理;
    2. 204 NoContent

    请求已经成功处理但是没有什么资源可以返回;
    3. 206 Partial Content

    请求成功,请求只需要某一资源的一部分; 响应报文中有 Content-Range指定范围的试题内容
    4. 301 Moved Permanently

    永久重定向,分配了新的URI;
    5. 302 Found

    临时重定向;
    6. 303 See Other

    临时重定向
    7. 304 Not Modified

    请求的资源找到了,但是没有达成请求条件,比如请求资源,结果响应304,表示缓存未过期,请用缓存
    8. 307 Temporary Redirect

    临时重定向
    9. 400 Bad Request

    错误请求,
    10. 401 Unauthorized

    请求未认证,第一次返回401,会提示输入用户名密码;
    11. 403 Forbidden

    请求的资源找到了,但是没有权限获取;不允许访问;
    12. 404 Not Found

    请求的资源找不到;
    13. 500 Internal Server Error

    服务器错误
    14. 503 Service Unavailable

    服务器正忙;

    • 状态码和状况的不一致

    有可能会出现状态码和真实状况不一致的情况,比如状态码200,表示请求成功,但是里面却没有实体内容;

    英文单词

    Partial: 局部的
    Permanently: 永久的
    Modified: 修改的
    Temporary: 临时的
    Redirect: 重定向
    unauththorized: 非法的
    Forbidden: 禁止
    
  • 相关阅读:
    表模块模式与事务脚本模式的代码编写
    解决方案下显示的网站名称被追加编号的问题解决方法
    应用层代码
    关于CodeReview(java)(转)
    关于事务的几个概念介绍(转)
    关于JVM的ClassLoader(转)
    svn相关
    .subversion
    linux用户与组的管理(命令加入、手动加入、加入组、用户之间的切换)
    回调函数
  • 原文地址:https://www.cnblogs.com/bridge7839/p/7100170.html
Copyright © 2020-2023  润新知