http-12.27

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,337评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 5,210评论 3 82
  • HTTP概述 超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最...
    曹渊说创业阅读 3,843评论 2 61
  • 大概在17年元旦的时候,一个偶然的机会经同事介绍接触到微马。 因为肠胃的困扰,很烦很烦,所以就坚持每天去慢跑,慢慢...
    九口木易阅读 1,187评论 0 1