HTTP权威指南笔记-1.概述
1.1 通讯
Web内容是存储在服务器上的,Web服务所使用的是HTTP协议,所以经常称为HTTP服务器。通讯过程为客户端(正常我们所使用的)发出请求,服务端根据客户端的HTTP请求响应相应数据,这就是基本的HTTP通讯。
1.2 传输内容与附加类型MIME
客户端向服务端获取内容有N多种类型,如:Word、JPEG、AVI、HTML等等上千种。
在传输过程中为分辨传输内容类型,Web服务器会为所有HTTP对象数据附加一个MIME类型。当Web浏览器(客户端)向服务器获取一个对象时,会根据MIME类型标记判断如何处理该对象。
MIME类型是一种为本标记,表示一种主要的对象类型和一个特定的子类型,中间由一个斜杠分隔。
例:HTML格式的文本文档用 text/html类型来标记
ASCII的文本文档由text/plain类型来标记
JPEG版本的图片为image/jpeg类型
1.3 URI、URL、URN
URI(Uniform Resource Identity):统一资源标识符,是服务器上每个资源的具体名字,URL就就是这个资源的唯一标识并定位信息资源。
URL(Uniform Resource Location):统一资源定位符,URL描述了特定服务器上的某一资源的特定位置,它们可以明确说明如何从一个精确、固定位置获取资源。
例:http://www.baidu.com/images/Logo.gif 获取百度站点的Logo图标(这个URL我瞎写的,举例说明为主,大家懂就好)
URL各部分类型含义:
- URL的第一部分为方案,说明了访问资源所使用的协议类型,这部分通常为HTTP
- 第二部分为服务器的因特网网址(服务器名称)上例中:www.baidu.com
- 其余部分制定了某个资源的具体路径位置
URN(Uniform Resource Name):统一资源名,URN是作为特定内容的唯一名称来使用,与资源的所在地无关。
1.4 事物
一个HTTP事物由一条请求命令和一个响应结果所组成。这种通信是通过HTTP报文的格式化数据块进行的。
方法:
- GET
- PUT
- POST
- DELETE
- HEAD
状态码:每条HTTP响应报文返回时都会携带一个状态码,标识响应状态
- 200: OK,正确返回
- 302:Redirect,到其他地方寻找资源
- 404:Not Found,无法找到资源
1.5 报文
报文是有一行一行的简单字符串组成的,不是二进制代码
从客户端发往服务器的为请求报文,从服务器发往客户端的为响应报文
HTTP报文包括三部分:
- 起始行 请求报文:说明要做什么;响应报文:说明什么情况
- 首部字段 可有可无,有的一般含有MIME及长度等
- 主体 可有可无,可以为客户端或服务端相互传输的各类型数据
1.6 连接
HTTP为应用层协议,不会关心通讯细节,具体细节有传输层TCP/IP解决
备注,各层含义,由上至下:
- HTTP 应用层
- TCP 传输层
- IP 网络层
- 网络特有的链路接口 数据链路层
- 物理网络硬件 物理层
在HTTP客户端向服务器发送报文之前需要IP地址极端口号在客户端与服务器建立TCP/IP连接,所以需要在URL内解析到服务器的IP及端口号(目的不同可能端口号也不相同)
例1:URL:http//:www.baidu.com:80/index.html
例2:URL:http//:192.168.1.3:80/index.html
从上例可以看出:例1没有采用数字形式IP,使用的是文本型域名,或可称为主机名
例2中采用数字IP
例1、例2得端口号都是默认80(默认80可不写)
连接及通讯其完整过程为:
- 浏览器从URL中获取IP或主机名(获取后转换为IP地址)及端口号
- 建立一条与Web服务器连接的TCP连接
- 浏览器向服务器发送一条HTTP请求报文
- 服务器向客户端发送一条HTTP回应报文
- 关闭连接,浏览器显示回应内容
1.7 协议版本
- HTTP/0.9 古老,设计缺陷多,只支持GET,不支持首部,MIME等
- HTTP/1.0 广泛应用版本,含有基本功能
- HTTP/1.0+ 广泛流行,非正式版本
- HTTP/1.1
- HTTP-NG(又名2.0)
1.8 Web的结构组件
1.代理
代理位于客户端与服务器之间,接收客户端所有HTTP请求并将这些请求转发至服务器,代理可对请求和响应进行过滤动作,如屏蔽视频,病毒检测等
2.缓存
在代理传送常用文档时,缓存会将该文档储存起来,在客户端再次请求同一文档时可以享受缓存私有副本所提供的服务
3.网关
网关会将其他协议类型的请求封装成HTTP协议报文,发送给客户端
4.隧道
通过隧道传送文件及内容,可对其加密
5.Agent代理
各类浏览器
以上。
后续会继续做笔记~~
HTTP权威指南笔记-1.概述的更多相关文章
- Struts2权威指南笔记
Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...
- 1.语言概述-JavaScript权威指南笔记
上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...
- 2.语言概述-JavaScript权威指南笔记
上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...
- javascript权威指南笔记
最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...
- css 权威指南笔记(一)
零零散散接触css将近5年,俨然已经成为一个熟练工.如果不是换份工作,我不知道自己差的那么远:在qunar的转正review中我这种“知其然而不知其所以然” 的状况被标明,我才意识到我已停步不前近两年 ...
- Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系
Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...
- Android编程权威指南笔记2:解决R文件爆红问题和SDK概念
在android studio中会遇到R文件的丢失,所以遇见这问题怎么解决呢? 重新检查资源文件中xml文件 最近一次编译时如果未生成R.java文件,项目中资源引用的地方都会出错.通常,这是某个xm ...
- Android编程权威指南笔记
学习android开发,你需要对java语言,包括类,对象,接口,监听器,包,内部类,匿名内部类有所了解. android studio 的下载与安装 可以从android开发者网站下载android ...
- css权威指南--笔记
第1章 css和文档 1,元素:替换元素(img input),非替换元素(大多数span). 2,link:rel(代表关系:stylesheet,候选样式表:alternate styleshee ...
随机推荐
- 自动化运维web环境搭建:Nginx+Django+uwsgi
参考资料: http://lovelace.blog.51cto.com/1028430/1600594 http://www.cnblogs.com/xiongpq/p/3381069.html 安 ...
- [2014.01.27]wfTextImage 文字图像组件 1.6
全新开发的文字转图像组件--wfTextImage,使用简单,功能强大,图像处理效果极佳. 将大段的文本内容转换成GIF图片. 有效防止文字内容被复制抄袭,有效保护文字资料. ...
- Ubuntu 14.04 (Trusty Tahr) LTS发布,附下载地址,各种镜像【bubuko.com】
Ubuntu 14.04 有很多的改进和新功能: 同时还发布几个不同版本:Ubuntu GNOME.Kubuntu.Xubuntu.Lubuntu.Edubuntu.Ubuntu Kylin.Ubun ...
- 承接cardboard外包,unity3d外包(北京动软— 谷歌CARDBOARD真强大)
手把手教你玩转googlecardboard[不知道在这里发可以不?] 谷歌Google I/O开发者大会于北京时间6月26日0点在美国旧金山举行,谷歌发布了Android L手机系统:Android ...
- Alembic
Layers of the Library: AbcA(low) --> Abc --> AbcGeom(high) Container Hierarchy in Alembic ...
- 【uTenux】学习一个嵌入式操作系统-uTenux
[这个是汇总] 最近有点时间,参加了EEPW论坛和悠龙咨询组织的一个嵌入式操作系统uTenux试用活动.本来想借助这个活动提供的开发板做一个小项目,奈何OS使用功底太次.于是,这个活动被我降低到了学习 ...
- 【学】jQuery的源码思路5——增加class的操作
hasClass, addClass, removeClass, toggleClass //addClass,加入class会对元素,利用正则,将class中多余的空格去掉 zQuery.proto ...
- JVM实用参数(七)CMS收集器
HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间.该目标对于大多数交互式应用很重要,比如web应用.在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器 ...
- jQuery的编码标准和最佳实践
不知道在哪里看到了这篇关于jQuery编码的文章,挺实用的,恰好最近在研究jQuery的基础知识,今天打开收藏夹来翻译一下,原文的英语不难,但是内容很实用,可能有大神已经翻译过了,大家看精华就行了. ...
- Emergency(山东省第一届ACM省赛)
Emergency Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Kudo’s real name is not Kudo. H ...