【HTTP】

URL:    -地址

统一资源定位服务;网址,下载文件地址

URI:   统一资源标识符;

URL VS URI

所有的URL都是URI,但URI不一定是URL;

完整的URL:

网络协议: IP地址(虚拟地址)  :端口号   /路径    ;查询参数           ?请求字符串            #哈希地址(锚点)

协议名://主机名:端口/资源路径;查询参数?请求字符串#哈希地址

window.location.protocol

window.location.hostname

window.location.port

window.location.path

window.location.query

window.location.hash

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

完整的URL元素:

- 网络协议

- IP地址(虚拟地址)

- 端口号

常用的:80

数据库:3306

- 路径

相对路径:

绝对路径:无论当前位置在哪,目标元素路径固定;

- 参数

- 查询数据

key=value&key=value

- 锚点

网络协议:

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

主流协议:

http协议:   - https加密(openssl)协议;

socket协议: - html5的web socket     ws://   多用于与C/S架构

ftp协议,pop3协议等

- Http协议:

多用于与B/S架构

问题:

短链接

* 每次客户端与服务器端交互时

* 先建立连接

* 交互完毕后,关闭链接

无状态

* 服务器端只能记得住当次请求状态

版本历史:

HTTP 1.0 - 目前主流版本

HTTP 1.1 - 较新版本(向下兼容)

HTTP 2.0 - 最新版本

1.请求协议

* 请求类型

* GET - 最常使用的

* POST - 最常使用的

* HEAD

* PUT

* DELETE

* OPTIONS

* TRACE

* 请求类型的面试题

* 请求类型只有两种(错)

* 请求类型常用的有两种(对)

* 请求类型共有七种(错)

* 请求类型至少有七种(对)

* 标准API - 标准的请求方式:各种客户端请求方式统一;

  * GET - 获取数据

                   * POST - 修改数据

                   * PUT - 新增数据

                   * DELETE - 删除数据   RESTful;

GET请求方式 - server.php?user=zhangwuji

1. - 请求行

-- 请求类型 - GET

-- 请求地址 - URL?key=value

-- 状态码 - 服务器端的状态 200

* 状态码

* 1xx - 服务器端的信息

* 一般实际开发中很少出现

* 2xx - 表示请求成功

* 200 - 请求成功

* 201 - 创建连接

* 202 - 接收请求

* 3xx - 表示重定向

* 302 - 表示重定向

* 304 - 表示服务器端资源没有变化,访问缓存

* 问题 - 这次请求没有真正地访问服务器端

* 305 - 表示使用代理

* 4xx - 客户端错误

* 400 - 错误的请求

* 403 - 拒绝访问

* 404 - 网页找不到

* 405 - 请求类型不允许

* 5xx - 服务器端错误

* 500 - 服务器端错误

* 502 - 路径错误

* 504 - 请求超时

* 505 - HTTP版本不支持

-- 协议版本

2- 请求头

-- 请求头的格式

* key : value

* key : value,value,value,...

-- 请求头的含义

* Accept - 表示服务器端接受的MIME类型

* 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

* 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请求方式

1-  请求行

* 请求类型 - POST

* 请求地址 - URL

* 状态码 - 200 OK

* 协议版本

2-  请求头

* Cache-Control - 缓存控制

* max-age=0 - 设置缓存最大活动周期

* 0 - 表示没有缓存

* 设置缓存保存的最大时间的单位为毫秒/秒

* Content-Length - 请求数据的长度(大小)

* Content-Type - 请求的MIME类型

* application/x-www-form-urlencoded

* <form>元素提交请求时默认的类型

* 一般文件上传时,类型一定这种格式

3-  请求体

* 请求参数

2.响应(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

-  响应体

* 服务器端向客户端进行响应的数据内容

3. HTTP基本优化

A:域名解析

* 在HTML页面尽量减少外部链接

* <a href=""></a>

* <img src="" /> - HTML5的Canvas|SVG

* <script src=""></script>

* <link href="" />

* <video src=""></video>

* 尽量减少与其他网址交互

B: 创建连接

* 尽量减少客户端与服务器端之间的交互

* 减少请求的次数

* 使用Ajax异步交互

* 使用例如socket这种协议(实时连接)

C: 发送请求

* 请求数据进行压缩

D: 等待响应

* 主要从服务器端进行优化

* 将响应数据进行压缩

* 将缩短等待响应的时间 - timeout

* 浏览器对HTML|CSS的解析,对javascript的解析

4.安全的HTTP协议

* HTTP协议

* http://

* 默认端口号为80

* HTTP安全协议 - OpenSSL安全协议

* https://

* 默认端口号为443

* 举例

* 电商网站

* 银行网站* ...

POST请求方式

5.GET请求类型 VS POST请求类型

* 请求参数

* GET请求类型

* 将请求数据 - URL?key=value(浏览器地址栏)

* 安全相对比较低

* 请求地址的长度是有限制的

* 请求数据内容过多

* 如果请求数据中包含中文的话,需要转码的

* 更容易出现中文乱码问题

* POST请求类型

* 浏览器地址栏URL,不包含请求数据

* 安全相对比较高

* 请求数据在请求体中

* 对请求数据的大小(长度)没有要求

* 如果请求数据中包含中文的话,可以不转码

* 相对来讲对于中文的处理比较好

6.unicode码

* 金云龙 - %E9%87%91%E4%BA%91%E9%BE%99

* 将中文内容转换成unicode码

* 服务器端接收后,将unicode码转换为中文

* Web应用的中文乱码问题

7 * GET与POST请求方式的请求协议的区别

* GET请求方式

* 请求行

* 请求类型 - GET

* 请求地址 - URL?请求参数

* 请求体 - 空

* POST请求方式

* 请求行

* 请求类型 - POST

* 请求地址 - URL

* 请求体

* 请求参数

* 头信息

* 通用(请求与响应)头信息

* Connection

* Content-Length

* Content-Type

* Date

* 特殊响应头

* 控制是否缓存的头信息

* Cache-Control - 0 表示不缓存

* Expires - 0 表示不缓存

* 注意 - 是允许缓存

* 控制头信息

* HTML页面 - 使用<meta />元元素

* PHP页面  - header()函数设置头信息

转载于:https://www.cnblogs.com/mbyund/p/6406405.html

Unit03: URL 、 HTTP 协议 、 HTTP优化相关推荐

  1. pc前端js调起电脑本地应用程序(需要客户端配合 自定义URL Protocol 协议 )

    由于做项目需要实现如题的一个功能,所以搜寻了相关资料. CSDN博文 自定义URL Protocol(客户端的配置):自定义URL Protocol 协议_chinahaerbin的博客-CSDN博客 ...

  2. php 获取当前访问URL的协议

    第一种: ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FOR ...

  3. dedecms静态页面php获取参数,DedeCms织梦TAG标签静态生成html,url拼音及分页优化的方法...

    DEDECMS自带的TAG标签是动态的,我们可以设置纯静态html,而且针对手机站也做了TAG静态化生成,非常强大,对于SEO提高收录及获取排名非常有好处,今天脚本之家小编为大家介绍织梦TAG标签伪静 ...

  4. 如何使用JavaScript获取URL的协议?

    想要获取当前URL的协议,可以使用JavaScript的location.protocol属性.下面本篇文章就来给大家介绍location.protocol属性,希望对大家有所帮助. 什么是协议? 网 ...

  5. SEO站内优化的重点是什么?站内URL应该如何合理优化?

    如果有人问你百度自然优化的精髓是什么?希望答案不再是"狂发外链"了.如今百度不再是几年前的百度,大量的算法更新对搜索引擎优化者的思维和手法有了更高的要求.然而百度更喜欢系统化用户体 ...

  6. LoadRunner v12.55发布,大量新增功能,各协议得到优化改进

    2019独角兽企业重金招聘Python工程师标准>>> 近日,HP旗下最受欢迎的测试工具loadrunner发布了最新的v12.55版本,那么本次的新版有哪些改进呢,小编这就带大家一 ...

  7. 什么是URL?协议头、路径和端口是什么意思?

    URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息. URL ...

  8. 构建基于SRU(Search and Retrieve via URL)协议的服务接口

    一.SRU介绍(Search/Retrieve URL Service) 基于开放协议,通过带有指定参数的url获取对应的xml检索数据. SRW/SRU:SRW(Search/Retrieve fo ...

  9. 海量url mysql_海量数据mysql优化步骤

    第一优化你的sql和索引: 第二加缓存,memcached,redis: 第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的a ...

  10. 判断url是否包含协议并添加协议(判断url是否包含协议,url添加协议头)

    import redef verify(url):if not re.search('http:|https:', url):url = 'http://' + urlreturn url

最新文章

  1. 我用AI分析了《赛博朋克 2077》的评价,发现真爱粉都是来吸猫的
  2. R语言ggplot2可视化柱状图并自定义柱体的宽度(通过变量指定条形的宽度)实战、条形图并自定义条形的宽度实战
  3. 数据结构与算法 / 概念
  4. 使用存储过程及触发器案例
  5. Linux系统安装python3和创建python3虚拟环境
  6. MySQL:行锁、表锁、乐观锁、悲观锁、读锁、写锁
  7. wsl用户帐户没有必要的权限_Windows的Linux子系统(WSL)即将带来图形化应用
  8. 尺度不变网络提升人群计数性能(附Github地址)
  9. 范凯:对移动社交型app的一点思考
  10. 列出场景对象Lightmap属性
  11. 连接动态链接库时找不到链接库的解决办法
  12. Linux和onenote很像的软件,Microsoft OneNote替代方案?
  13. ae运动模糊插件安装教程_AEPR运动模糊插件(RSMB) REVisionFX ReelSmart Motion Blur Pro v4.2.3...
  14. 发现谷歌学术搜索真好用啊
  15. 西班牙出差见闻之一(出发)
  16. Rendezvous: A Search Engine for Binary Code
  17. 物联网-移远m26使用MQTT协议,AT指令对接阿里云
  18. 谈谈前端浏览器兼容和性能优化
  19. CSS font-family 中英文名称集合
  20. MATLAB2016笔记(九):概率统计( 概率密度、统计作图、统计特征、累积概率分布、随机变量产生)

热门文章

  1. 如何了解 ![CDATA[ ]]的作用?
  2. 从电池中管理使用电动车(EVS)和电力注射构成控制EV的充电和排放作为有吸引力的研究领域的问题
  3. 信息管理导论川大667 | 第一章核心知识点
  4. 用计算机制作数学PPT课件,使用flash制作数学课件经典案例.ppt
  5. c++ 实现类注册机制的方法
  6. 微信小程序-WXS脚本
  7. Unity的packages管理机制
  8. 核磁数据分析学习笔记[02_预处理、GLM相关]
  9. 一个员工的离职成本有多高,很恐怖,员工、管理者、老板都要慎重
  10. 如何处理构造函数抛出的异常?