http-12.27

作者: 50153465fcd8 | 来源:发表于2016-12-29 17:00 被阅读0次

    URL

    1.URL与URI
    URL - 统一资源定位符
    URI - 统一资源标识符
    URL与URI的区别
    所有的URL都是URI,但URI不一定是URL
    2.完整的URL

    • 完整的url具有哪些元素
      网络协议://IP地址:端口号/路径;参数?查询数据#锚点
    • 网络协议 -
    • IP地址 - 每个电脑都有0.0.0.0每个
    • 端口号 - 电脑开放给外部电脑访问接口
    • 路径 - 相对路径和绝对路径
    • 参数 - 某些方案会使用参数来指定输入参数
    • 查询地址 -
    • key=value&key=value
    • 锚点 -
    • 一般使用时:
      http://www.baidu.com/news
      http://137.0.0.1:8080?key=value
      http://localhost:80#mylink

    Http协议

    1.网络协议

      客户端与服务端之间的协议
    

    2.主流协议

      http、socket、ftp、pop3
    

    3.http协议

    • 多用与b/s架构
    • 问题
      短连接:每次客户端与服务端交互时,先建立连接,交互完毕后,关闭连接
      无状态:服务端只能记得住当次请求状态
    • http:1.0 - 目前主流版本
      http:1.1 - 较新版本(向下兼容)
      http:2.0 - 最新版本

    http请求协议

    • 客户端发送一个请求,应该有如下三个部分:
      请求行: 请求方法、请求url 状态码、(http协议版本)
      请求头部: 说明服务器要使用的附加信息
      请求主体: 提交给服务器的请求数据
    • HTTP客户端请求内容详解
      请求行 - 请求的信息
      请求类型 - get、post
      请求地址
      如果是get请求,参数应该拼到url的后面url?key=value,但请求体为空
      如果是post请求,url后面不拼参数,参数放在请求体中
      状态码 - 服务器端的状态
    • 请求头 - 反映给服务端的信息
      格式为 key:value,key:value,...
      accept - 表示浏览器可接受的MIME类型
      accept-Encoding - 浏览器能够进行解码的数据编码方式
      accept-language - 表示服务端接受的语言
      zh-cn:简体中文
      zh-tw:繁体中文
      zh - 中文
      us -英文
      connection - 表示当前链接状态
      keep-alive - 保持连接
      host - 请求的服务器网址;
      referer - 表示当前的请求来源
      实现防盗链接
      user-agent 获取到用户浏览器信息
      cache-control -缓存控制
      max-age 设置最大活动周期,设置缓存保存的最大时间的单位为秒,为0代表不缓存
      cookie - 将cookie自动携带到请求头
      content-type:互联网媒体类型;使用post请求必须设置这个属性
      也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。
      <form>元素提交时默认的类型
      一般文件上传时默认为application/x-www.form-urlencoded
      Content-Length:请求内容的长度
      对于POST请求来说Content-Length必须出现
    • 请求体 - 存放请求参数
      如果为post请求,有值,如果为get请求为空

    http响应协议

    • 服务端给客户端响应信息,应该有如下三部分
      响应行:协议版本 状态码 原因短语
      响应头部:
      响应主题: 返回给客户端的响应数据,可能是字符数据,也可能是字节数据
    • HTTP服务端响应内容详解
    • 响应行
      状态码
      协议版本
    • 响应头
      Allow:服务器支持哪些请求方法
      GET、POST
      Content-Encoding 文档的编码(Encode)
      Cache-Control: 告诉客户端,服务端的缓存配置
      Connection - 表示当前的连接状态
      keep-alive 表示保持连接
      content-length 响应数据的长度(大小)
      content-type - 响应数据的mime类型
      一般情况下:text/html
      Date - 当前响应的日期时间
      keep-alive 设置保持连接的超时和最大存活时间
      timeout=5 max=99
      server - 服务器端的信息
    • 响应体
      服务器返回给客户端的数据主体

    扩展内容

    1.请求类型
    get/post/head/put/delete/options/trace
    2.标准API - 标准的请求方式
    get - 获取数据
    post - 修改数据
    put - 新增数据
    delete - 删除数据
    3.状态码
    1XX - 服务器的信息
    2XX - 表示请求成功
    200:请求成功
    201:成功创建连接
    202:接受请求
    3XX - 表示重定向
    302:表示重定向
    304:表示服务端资源没有变化,访问缓存
    问题 - 这次请求没有真正低访问服务器端
    305:使用代理
    4XX - 客户端错误
    400:错误的请求
    404:网页找不到
    403:拒绝访问
    405:请求类型不允许
    5XX - 服务端错误
    500:服务端错误
    502:路径错误
    504:请求超时
    505:http版本不支持
    4.MIME类型 - 文件类型
    MIME类型是如何定义的
    //定义MIME类型
    <mime-mapping>
    //文件的扩展名
    <extension>jpg</extension>
    //对应的MIME类型
    <mime-type>image/jpeg</mime-type>
    </mime-mapping>
    常见的MIME类型
    html - text/html
    htm - text/html
    css - text/css
    js - text/javascript
    json - application/json
    jpg - image/jpeg
    text - text/plain

    5.请求参数

    • get请求类型
      将请求数据 - url?key=value(浏览器地址)
      安全性低
      请求地址的长度是有限制的
      请求数据中包含中文的话,需要转码
    • post请求类型
      浏览器地址栏url,不包含请求类型
      安全性相对比较高
      对请求数据的长度没有要求
      请求数据中包含中文的话,可以不转码,对中文的处理相对比较好
      6.控制HTTP头部方法
      可以配置每个HTML文件的HTTP-EQUIV标签控制缓存
      <meta http-equiv="Cache-Control" content="no-cache">
      在PHP页面中控制响应头
      header("Content-Type: image/jpeg");

    缓存工作原理

    1.客户端可以自动保存已经访问过的文档的副本,这些副本就成为“文档缓存”
    2.当客户端再次发送针对同一个URL的请求时,如果本地有“已缓存的副本”,就可以直接从本地存储设备而不是远程服务器提取该文档了。
    3.数据缓存有下列优点
    减少了冗余的数据传输,节省客户端流量费用
    缓解服务器带宽瓶颈的问题,服务器可以节省出更多的带宽
    降低了对服务器的资源消耗和运行要求
    降低了由于远距离而造成的加载延时

    http基本优化

    网站性能优化最主要的就是要减少HTTP请求及每次响应中内容的长度。可以从连接过程中的下列方面加以考虑:
    1.域名解析
    尽可能减少域名解析次数——减少跨站外部资源的引用
    2.创建连接
    努力减少连接创建次数——使用Keep-Alive避免重复连接
    3.发送请求
    尽力减少请求次数——合理设置Expires时间、资源合并
    4.等待响应
    提高服务器端运行速度——提高数据运算及查询速度
    5.接收响应
    尽可能减小响应数据长度——启用压缩

    安全的HTTP协议

    1.HTTP协议本质上属于“明文传输”,可能被窃听和篡改,政府、银行等机密应用需要需要“安全版本的HTTP”:http协议默认端口80
    2.HTTPS协议将消息发送给TCP层之前,先交给了一个安全层(由SSL或TLS协议实现),安全层负责对消息进行加密和解密操作。https协议默认端口443

    相关文章

      网友评论

        本文标题:http-12.27

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