http://edu.51cto.com/course/course_id-866.html

HTTP: HyperText Transfer Protocol 超文本传输协议

超链接:

Web:
 http/0.9:仅纯文本(超链接),ASCII
 HTML: HyperText Mark Language 超文本标记语言

Browser:客户端

URI:Uniform Resource Indentifier 统一资源标示符,全局范围,包括但不限于互联网
     统一:路径格式上的统一

URL是URI的子对象:Uniform Resource Locator 统一资源定位符, 互联网资源的统一标示格式

protocol://HOST:port/path/to/file

例如:http://www.magedu.com/download/linux.tar.gz

web资源: http://www.magedu.com/logo.gif
多个资源很可能被整合成为一个html文档

web对象

资源访问的方法
http方法:
      GET(早期0.9只有一种)

http/1.0: PUT, POST(通过表单提交数据), DELETE
引入了MIME: multipurpose Internet Mail Extension,多用途互联网邮件扩展,这样就可以传输非文本数据了,如图片、视频。

SMTP:Simple Mail Transmission Protocal 简单邮件传送协议,早期只能传送纯文本
      引入了MIME:将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件
      Base64就是一种文本编码格式

协议首部:
image/jpeg
客户端发现image大类下的jpeg小类,浏览器调用插件解析。以插件的机制解析对应MIME格式。

动态效果(ActiveX、Flash、Applet JRE)

动态网页:服务器端存储的文档非HTML格式,而是编程语言开发的脚本。脚本接受参数之后再服务器运行一次,运行完成之后会生成HTML格式的文档,把生成的文档发给客户端。

web:index.php

web --> procotol --> php(运行index.php)

IP

  • Sourse IP
  • Destination IP

TCP

  • Sourse Port
  • Destination Port

http首部
  GET /2.html
  Host: www.magedu.com(虚拟主机)

http报文:请求报文 相应报文

请求报文语法:
<method> <request-URL> <version>
<headers>
<entity-body>

响应报文语法:
<version> <status> <reason-phrease>
<headers>
<entity-body>

状态代码:
1xx:纯信息
2xx:"成功"类的信息(200,201,202)
3xx:重定向类的信息(301永久重定向,302临时重定向,304not notify)
4xx:客户端错误类的信息(404请求了一个不存在的文件)
5xx:服务器端错误类的信息(500)

请求报文:
GET / HTTP/1.1
Host: www.magedu.com
Connection: keep-alive

相应报文:
HTTP/1.1 200 ok
X-Powered-By: PHP/5.2.17
Vary: Accept_Encoding, Cookie, User-Agent
Cache-Control: max-age=3, must-revalidate
Content-Encoding:gzip
Content-Length:6931

Web服务器的主要操作
1、建立连接-接受或拒绝客户端连接请求;
2、接受请求-通过网络读取Http请求报文;
3、处理请求-解析请求并作出相应的动作;
4、访问资源-访问请求报文中相关的资源;
5、构建相应-使用正确的首部生成HTTP响应报文;
6、发送相应-向客户端发送生成的响应报文;
7、记录日志-当已经完成的HTTP事物记录进日志文件;

Ss:10 image, 3 css, 5 html
18资源 单独请求

Ss:10 image, 3 css, 5 html
18资源 单独请求 浏览器多线程,每一个线程发送一个请求

http基于tcp,需要三次握手,四次断开

浏览器缓存是加速网页资源访问速度的。

为了避免三次握手、四次断开等机制,http 1.1引入了
1、增强了缓存功能
2、引入了长连接

为了资源的有效利用,长连接规定了超时断开,最多允许请求多少次。
多个用户同时访问网站,如何响应

继续第九课。。。

最新文章

  1. Android中使用Handler造成内存泄露
  2. Visual Studio 2013 无法正常打开项目文件
  3. GUI创建各常用控件(二)
  4. 1176. Hyperchannels(欧拉回路)
  5. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目
  6. nodejs 做后台的一个完整业务整理
  7. Python基础之元组
  8. 【原创】USART异步模式配置
  9. JDK开发环境搭建及环境变量配置
  10. Confluence 6 数据库整合有关你数据库的大小写敏感问题
  11. Django Rest framework 之 节流
  12. 超详细的Web前端开发规范文档
  13. 小程序使用wxParse解析html
  14. Gcc\MingW\Cygwin\Msys简介
  15. position:fixed 相对父元素定位
  16. kali视频(21-25)学习
  17. SQLServer如何在批量插入后,获取批量插入的自增列的值
  18. Token和session 详解
  19. SSL--Windows下生成OpenSSL自签证书
  20. Linux课程---4、Linux目录结构及常用命令(目录结构)

热门文章

  1. MapReduce编程基础
  2. 在Ubuntu 12.04 桌面上设置启动器(快捷方式)
  3. [转]我花了一个五一终于搞懂了OpenLDAP
  4. STL队列 之FIFO队列(queue)、优先队列(priority_queue)、双端队列(deque)
  5. oralce sql 分页
  6. c# 使用 HttpWebRequest模拟登陆(附带验证码)
  7. IOS之Block讲解
  8. C# 中奇妙的函数–8. String Remove() 和 Replace()
  9. mysql时间操作函数和存储过程
  10. windows 用户变量和系统变量的差别