zoukankan      html  css  js  c++  java
  • http

    1、为什么讲http?
    因为ajax内部操作的就是http
    什么是http?
    超文本传输协议 hypertext transport protocol

    URL 统一资源定位符
    port(端口):http默认port为80 https默认port为443
    param:param1=value1&param2=value2...改格式不能更改 => URL格式
    <scheme>://<username>:<password>@<hostname>:<port><path>?<querystring>#<hash>
    ?开始的时候用问号
    &来分割参数的
    http://kongpengfang:123456@baidu.com
    param(参数)

    dns解析:
    把一个域名解析成一个ip的过程

    =============================================================
    http的构成

    网络七层协议
    1、物理层 网卡
    2、链路层 网卡驱动
    3、网络层 ip
    4、传输层 tcp/udp 传输协议
    5、会话层 保持会话/断开会话 系统OS xxx.msi
    6、加密层 加密解密 对称加密/非对称加密
    7、应用层 http https ftp smtp(邮件的发送)等等等

    https:加密过的http 用的是非对称加密 RSA算法
    实现原理是:http+ssl/tsl

    =============================================================
    http是一个事务,事务和事件的区别?
    事务是事件的集合,包含n+1个事件。只有当这n+1个事件全部完成的时候,事务才算成功,否则事务就算做失败。

    http包含两个时间 request和response 必须先有请求再有响应,顺序是固定的

    response和request都包含哪些部分?
    1、起始行 这个请求或响应的摘要信息 http method、request URL、http version
    2、首部 这个请求或响应的基本信息 固定格式:key:value 请求首部、扩展首部、实体首部、通用首部
    3、主体 这个请求或响应的数据的承载主体 返回的数据

    =============================================================
    http版本号
    0.9 1.0 1.1 2.0
    http1.1和2.0的区别?赶集网 美团网
    1、多路复用:减少tcp请求 把多个tcp合并成一个
    2、首部压缩:把多个首部压缩
    3、服务器推送:不用request也可以response

    =============================================================
    什么是mimeType?
    作用:标记数据类型的
    因特网多媒体邮件扩展
    标示内容是什么格式。告诉浏览器或者server如何解析该数据
    http的请求和相应都含有一个mimeType字段 =>content-type(通用首部)

    请求可以不带content-type但是响应一定要带content-type.否则浏览器无法正确解析该数据

    都有一个固定的格式
    html text/html
    css text/css
    js text/javascript
    png image/png
    jpg image/jpeg
    mp4 video/mp4
    mp3 video/mp3
    二进制 application/octet-stream
    json application/json
    格式:大类型/小类型

    =============================================================
    页面级别的同步请求和异步请求:
    同步请求:当前页面内的任何一个操纵都需要重新刷新页面。jsp asp asp.NET 举例:http://www.bjgjj.gov.cn/xwdt/index_2.html
    异步请求:不需要每次刷新页面,只需要加载指定的内容即可。 举例:https://www.taobao.com/

    =============================================================
    http method(方法):
    1、get 从服务器获取资源
    2、post 向服务器发送资源
    3、put 向服务器推送资源
    4、delete 告诉服务器删除某个资源
    5、head 告诉服务器返回数据时不需要返回响应主体,只返回起始行和首部即可。
    6、options 检测服务器支持哪些http方法

    GET方法的特点:
    一、没有请求主体。
    二、会把查询条件格式化为URI的格式拼接到URL后面。
    三、有大小限制,因为浏览器对url的长度有限制,所以造成了get请求有大小限制。chrome 8k IE 2K Firefox 7k。
    四、明文发送,不安全,安全性比较差。
    五、容易被浏览器缓存。
    六、浏览器默认全是get请求。

    POST方法的特点:
    一、有请求主体
    二、没有大小限制,因为它把数据全部放到请求主体之中,而浏览器对请求主体是没有大小限制的。
    三、不是明文发送,安全性较强。
    四、不会被浏览器缓存。

    PUT方法的特点:
    一、有请求主体
    二、没有大小限制,因为它把数据全部放到请求主体之中,而浏览器对请求主体是没有大小限制的。
    三、不是明文发送,安全性较强。
    四、不会被浏览器缓存。
    五、成功返回状态码202。

    DELETE方法的特点:(和GET方法类似)
    一、没有请求主体。
    二、会把查询条件格式化为URI的格式拼接到URL后面。
    三、有大小限制,因为浏览器对url的长度有限制,所以造成了get请求有大小限制。chrome 8k IE 2K Firefox 7k。
    四、明文发送,不安全,安全性比较差。
    五、容易被浏览器缓存。
    六、浏览器默认全是get请求。
    七、成功返回状态码202。

    HEAD方法的特点:(和GET方法类似)--秒杀 获取服务器时间 下载之前获取下载文件名和文件大小
    一、没有请求主体。
    二、会把查询条件格式化为URI的格式拼接到URL后面。
    三、有大小限制,因为浏览器对url的长度有限制,所以造成了get请求有大小限制。chrome 8k IE 2K Firefox 7k。
    四、明文发送,不安全,安全性比较差。
    五、容易被浏览器缓存。
    六、浏览器默认全是get请求。
    七、没有响应主体。(只返回起始行和首部,不返回主体)


    OPTIONS方法的特点:http://pan.baidu.com/disk/home#list/path=%2F Access-Control-Allow-Methods:HEAD, GET, OPTIONS, PUT, POST, DELETE
    一、没有响应主体。
    二、会把服务器支持哪些http方法放在相应首部中。

    GET系方法和POST系方法
    GET系:get、head、delete
    POST系:post、put

    为什么要设计这么多http方法?
    各司其职
    CRUD
    /rest/1.0/userinfo
    增加 post /rest/1.0/userinfo {name:'',sex:'',age:''}
    删除 delete /rest/1.0/userinfo?id=1
    修改 put /rest/1.0/userinfo?id=1 {name:'',sex:'',age:''}
    查询 get /rest/1.0/userinfo?id=

    这是软件设计架构,叫restful 表征状态转移

    =============================================================
    http状态码:
    1xx http正在初始化,在http2.0中已经把1xx的状态码删掉。但是还有一个例外就是websocket 例如:https://developer.rongcloud.cn/signup一款聊天工具
    101
    2xx 客户端成功
    200 OK 成功
    202 accepted 接受
    3xx 重定向 http://www.360buy.com/
    301 永久转移
    302 临时转移
    301和302都有一个共同的特点:从站点A跳转到站点B
    304 未修改(缓存)
    4xx 客户端错误
    400 错误的请求 端口不正确或者参数不正确
    401 未认证 没有登录信息
    403 禁止访问 没有权限
    404 未找到 该资源未找到
    5xx 服务器错误
    500 内部服务器错误
    503 连接数过多


    ajax的同步和异步?
    同步和异步统一根据send()执行的位置来实现分割逻辑
    同步:
    1、send()后统一不会被执行,直到http事务完成之后才会之后后续逻辑。
    2、堵塞send()方法的逻辑。
    异步:
    1、send()后面照样执行。
    2、不会堵塞send()方法的逻辑。





    for(var n in location){console.log(n);}
    通过域名拿到地址:
    http://www.cnblogs.com/?1=1&b=2#hash
    location.search
    "?1=1&b=2"

    location.hash
    "#hash"

    location.hostname
    "fanyi.baidu.com"
    location.protocol
    "http:"



  • 相关阅读:
    ubuntu用mentohust连接ruijie
    vim系统剪切板
    JSP 页面中用绝对路径显示图片
    response.setContentType与 request.setCharacterEncoding 区别
    安装mysql数据库要注意的
    eclipse link方式安装插件安装不上
    Windows程序调用dll
    DP 问题
    LeetCode Repeated Substring Pattern
    LeetCode Number of Segments in a String
  • 原文地址:https://www.cnblogs.com/kpengfang/p/5558958.html
Copyright © 2011-2022 走看看