• HTTP



    * HTTP
    * URL概念
    * URL - 统一资源定位符
    * URI - 统一资源标识符
    * URL与URI的区别
    * 所有的URL都是URI,但URI不一定是URL
    * 完整的URL
    网络协议:IP地址(虚拟地址):端口号/路径;参数?查询数据#锚点
    http://127.0.0.1:8080/11_SERVER&HTTP;JSESSION=123123213?key=value#mylink
    ftp://code.tarena.com:80/14_SERVER&HTTP;JSESSION=123123213?key=value
    * 一般实际使用时
    * http://www.baidu.com/news
    * http://127.0.0.1:8888?key=value
    * http://localhost:80#mylink
    * 具有哪些元素
    * 网络协议
    * IP地址 - 每个电脑都具有
    0.0.0.0
    * 端口号 - 每个电脑开放给外部电脑访问接口
    * 最常用的端口号 - 80
    * 数据库的端口号 - 3306
    * 路径 - 绝对路径|相对路径
    * 绝对路径
    * 无论当前位置在哪,目标元素的路径是固定不变的
    * 相对路径
    * 根据当前位置的变化,路径也会变化
    * 参数
    * 查询数据
    * 格式为key=value&key=value
    * 锚点
    * 网络协议
    * 网络协议 - 客户端与服务器端之间的协议
    * 主流协议
    * http协议 - https加密(openssl)协议
    * socket协议 - HTML5的web socket ws://
    * ftp协议、pop3协议等
    * Http协议
    * Http协议 - 多用于B/S架构
    * 一些问题
    * 短连接
    * 每次客户端与服务器端交互时
    * 先建立连接
    * 交互完毕后,关闭链接
    * 无状态
    * 服务器端只能记得住当次请求状态
    * 版本历史
    * HTTP 1.0 - 目前主流版本
    * HTTP 1.1 - 较新版本(向下兼容)
    * HTTP 2.0 - 最新版本
    * 请求(Request)协议
    * GET请求方式 - server.php?user=zhangwuji
    * 请求行
    * 请求类型 - GET
    * 请求地址 - URL?请求参数
    * 状态码 - 服务器端的状态
    * 协议版本
    * 请求头
    * 请求头的格式
    * key : value
    * key : value,value,value,...
    * 请求头的含义
    * Accept - 表示服务器端接受的MIME类型
    * Accept-Encoding - 表示服务器端是否接受压缩
    * gzip - 是指一种服务器端的压缩格式
    * 问题 - 客户端请求的数据内容越大
    * 对网络带宽的要求越高,流量占用大
    * 用户体验不好 - 速度慢、对服务器造成的压力大
    * Accept-Language - 表示服务器端接受的语言
    * zh-CN - 简体中文
    * zh-TW - 繁体中文
    * zh - 中文
    * us - 英文
    * Connection - 表示当前的连接状态
    * keep-alive - 表示保持连接
    * Host - 表示当前电脑的地址(IP:端口号)
    * Referer - 表示当前的请求来源于哪里
    http://127.0.0.1:8888/http/index.html
    * 实现防盗链接
    * User-Agent - 获取用户的浏览器信息
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36

    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0

    Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
    * Cookie - 将Cookie自动携带请求头
    * 请求体 - 空
    * POST请求方式
    * 请求行
    * 请求类型 - POST
    * 请求地址 - URL
    * 状态码 - 200 OK
    * 协议版本
    * 请求头
    * Cache-Control - 缓存控制
    * max-age=0 - 设置缓存最大活动周期
    * 0 - 表示没有缓存
    * 设置缓存保存的最大时间的单位为毫秒/秒
    * Content-Length - 请求数据的长度(大小)
    * Content-Type - 请求的MIME类型
    * application/x-www-form-urlencoded
    * <form>元素提交请求时默认的类型
    * 一般文件上传时,类型一定这种格式
    * 请求体
    * 请求参数
    * 响应(Response)协议
    * 响应行
    * 状态码
    * 协议版本
    * 响应头
    * Connection - 表示当前的连接状态
    * keep-alive - 表示保持连接
    * Content-Length - 响应数据的长度(大小)
    * Content-Type - 响应数据的MIME类型
    * 一般情况下 - text/html格式
    * 设置响应页面编码 - charset=UTF-8
    * Date - 响应的日期时间
    Thu, 19 Nov 2015 08:17:03 GMT
    yyyy-MM-dd hh:mm:ss
    yyyy年MM月dd日 hh:mm:ss
    * Keep-Alive - 设置保持连接的超时和最大存活时间
    * timeout=5, max=99
    * 一般都是在Connection的值设置为keep-alive时
    * Server - 响应服务器端的信息
    Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
    * 响应体
    * 服务器端向客户端进行响应的数据内容
    * HTTP基本优化
    * 域名解析
    * 在HTML页面尽量减少外部链接
    * <a hred=""></a>
    * <img src="" /> - HTML5的Canvas|SVG
    * <script src=""></script>
    * <link href="" />
    * <video src=""></video>
    * 尽量减少与其他网址交互
    * 创建连接
    * 尽量减少客户端与服务器端之间的交互
    * 减少请求的次数
    * 使用Ajax异步交互
    * 使用例如socket这种协议(实时连接)
    * 发送请求
    * 请求数据进行压缩
    * 等待响应
    * 主要从服务器端进行优化
    * 将响应数据进行压缩
    * 将缩短等待响应的时间 - timeout
    * 浏览器对HTML|CSS的解析,对javascript的解析
    * 安全的HTTP协议
    * HTTP协议
    * http://
    * 默认端口号为80
    * HTTP安全协议 - OpenSSL安全协议
    * https://
    * 默认端口号为443
    * 举例
    * 电商网站
    * 银行网站
    * ...
    * 扩展内容
    * 请求类型
    * GET - 最常使用的
    * POST - 最常使用的
    * HEAD
    * PUT
    * DELETE
    * OPTIONS
    * TRACE
    * 请求类型的面试题
    * 请求类型只有两种(错)
    * 请求类型常用的有两种(对)
    * 请求类型共有七种(错)
    * 请求类型至少有七种(对)
    * 标准API - 标准的请求方式
    * GET - 获取数据
    * POST - 修改数据
    * PUT - 新增数据
    * DELETE - 删除数据
    * 状态码
    * 1xx - 服务器端的信息
    * 一般实际开发中很少出现
    * 2xx - 表示请求成功
    * 200 - 请求成功
    * 201 - 创建连接
    * 202 - 接收请求
    * 3xx - 表示重定向
    * 302 - 表示重定向
    * 304 - 表示服务器端资源没有变化,访问缓存
    * 问题 - 这次请求没有真正地访问服务器端
    * 305 - 表示使用代理
    * 4xx - 客户端错误
    * 400 - 错误的请求
    * 403 - 拒绝访问
    * 404 - 网页找不到
    * 405 - 请求类型不允许
    * 5xx - 服务器端错误
    * 500 - 服务器端错误
    * 502 - 路径错误
    * 504 - 请求超时
    * 505 - HTTP版本不支持
    * MIME类型 - 文件类型
    * MIME类型是如何定义的
    // 定义MIME类型
    <mime-mapping>
    // 文件的扩展名
    <extension>jpg</extension>
    // 对应MIME类型
    <mime-type>image/jpeg</mime-type>
    </mime-mapping>
    * 常见的MIME类型
    * html - text/html
    * htm - text/html
    * xhtml- application/xhtml+xml
    * css - text/css
    * js - application/javascript text/javascript
    * json - application/json
    * jpg - image/jpeg
    * jpeg - image/jpeg
    * png - image/png
    * text - text/plain
    * webm - video/webm
    * mp4 - video/mp4
    * 请求参数
    * GET请求类型
    * 将请求数据 - URL?key=value(浏览器地址栏)
    * 安全相对比较低
    * 请求地址的长度是有限制的
    * 请求数据内容过多
    * 如果请求数据中包含中文的话,需要转码的
    * 更容易出现中文乱码问题
    * POST请求类型
    * 浏览器地址栏URL,不包含请求类型
    * 安全相对比较高
    * 请求数据在请求体中
    * 对请求数据的大小(长度)没有要求
    * 如果请求数据中包含中文的话,可以不转码
    * 相对来讲对于中文的处理比较好
    * unicode码
    * 金云龙 - %E9%87%91%E4%BA%91%E9%BE%99
    * 将中文内容转换成unicode码
    * 服务器端接收后,将unicode码转换为中文
    * Web应用的中文乱码问题
    * GET与POST请求方式的请求协议的区别
    * GET请求方式
    * 请求行
    * 请求类型 - GET
    * 请求地址 - URL?请求参数
    * 请求体 - 空
    * POST请求方式
    * 请求行
    * 请求类型 - POST
    * 请求地址 - URL
    * 请求体
    * 请求参数
    * 头信息
    * 通用(请求与响应)头信息
    * Connection
    * Content-Length
    * Content-Type
    * Date
    * 特殊响应头
    * 控制是否缓存的头信息
    * Cache-Control - 0 表示不缓存
    * Expires - 0 表示不缓存
    * 注意 - 是允许缓存
    * 控制头信息
    * HTML页面 - 使用<meta />元元素
    * PHP页面 - header()函数设置头信息

  • 相关阅读:
    mysql 新建的%用户无法本地(localhost)登录
    MySQL Change root Password
    Linux装机环境配置记录
    linux 服务配置(synergy)
    shell特殊字符
    pdf中有道不能够整句划词的解决方法
    shell 注释
    VC AddFilesToProject 不能使用
    CFLoatEdit
    ln 命令
  • 原文地址:https://www.cnblogs.com/baiyanfeng/p/5042947.html
Copyright © 2020-2023  润新知