文章目录
1、HTTP协议
Web基础协议!
超文本传输协议
应用层的网络协议
浏览器(请求代理端),与 httpd服务器(web服务器)端,数据的通讯协议
协议:约定
浏览器与服务器间,请求和响应 两种数据通信:
1、HTTP协议,全称Hyper Text Transfer Protocol(超文本传输协议)
HTTP协议是用于从(WWW:World Wide Web,简万维网)服务器传输超文本到本地浏览器的传送协议
2、HTTP协议工作于B/S架构上
浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送请求Request
Web服务器根据接收到的请求后,向客户端发送响应信息Response
3、HTTP协议是基于TCP/IP通信协议来传递数据的(HTML 文件, 图片文件等)
1.1、什么是互联网
互联网=物理连接介质+互联网协议
1.2、互联网建立的目的
数据传输打破地域限制,否则的话,我想获得对方主机上的数据,只能拿着硬盘去对方主机拷贝
1.3、什么是上网
用户上网的过程即浏览器向服务端发送请求,然后将服务端主机的文本文件下载到本地显示的过程,而浏览器与服务器之间走的HTTP协议
1.4、请求协议
很多工具可以监视到浏览器的请求(监视到网卡的数据)
火狐的firebug,监视浏览器的请求。
Chrome: 调试工具网络面板。
IE: 开发人员工具 (>IE8)
Httpwatch,不但可以监视,还可以直接充当请求代理端
Fiddler, 不但可以监视,还可以直接充当请求代理端
(GET请求不需要请求主体)
由三部分组成:
请求行,request line
请求头,request header
请求主体,request content
1.4.1、请求行, request line
请求的起始行,表示请求的摘要信息。
请求方式 资源标识 协议/版本
由空格隔开
1.4.1.1、请求方式
post,get,put,delete,header
服务器上的任何都是资源。
Get,获取资源
Put,创建资源
Delete,删除资源
Post,更新资源。
Get,逻辑上表示获取服务器资源。特点是在URI(资源标识)上传输数据。可能会出现大小的限制(不是http协议的限制,而通常是浏览器的限制)。
POST,逻辑上表示更新服务器资源。特点数据在请求主体中传输
1.4.1.2、请求资源标识
/path/to/script?请求参数
请求脚本 + 查询字符串
1.4.1.3、协议/版本
0.9 1.0 1.1 2.0
1.4.2、请求头, 请求标头, 请求头信息, request header
浏览器告知(传输,需要服务器知道)服务器的一些请求属性信息(浏览器属性信息)
User-Agent:
Host:
Accept: 浏览器告知服务器,可以接受的内容类型。
Accept-Encoding: 可以接受的响应数据压缩编码类型。
Accept-Language: 可以接受的响应数据的语言类型。多语言程序的判定依据(TIP: 只是对服务器的建议,不是语法硬性规定)
Cache-Control: 缓存控制,建议服务器提供的浏览器缓存处理方式。Max-age=0表示0秒内有效,不缓存。
Connection: 连接类型,Keep-alive保持连接,Close立即断开(http/1.1的新特性)
Cookie: 携带的cookie数据。
语法上:
没个请求头是独立一行,头key和头value使用冒号分割
行结束使用 回车+换行 \r\n . (CRLF)表示
头结束,使用空行表示
1.4.3、请求主体, request content
请求的主体数据
Post请求才需要主体数据
主体数据表示: 大量附加数据含义
URL后的数据: 查询条件数据
1.5、操作请求数据
思路: 服务器获取浏览器请求时携带的请求头信息,完成需要的业务逻辑
1.5.1、返回来源页面
请求头信息: referer,请求来源!
1.6、响应协议
1.6.1、响应行, response line
响应的摘要信息
表示请求的结果
协议/版本 响应状态码 响应消息
通常 状态码 和 状态消息 是一一对应的
一: 常用的状态码和状态消息:
200,成功
301,重定向,永久重定向
302,重定向
403,请求代理端没有权限操作
404,请求的资源不存在
500,出现在服务器内部
二: 大体的分布:
1xx,消息
2xx,成功
3xx,重定向
4xx,浏览器端错误
5xx,服务器内部错误
1.6.2、响应头, response header
服务器 告知 浏览器的 属性信息
响应头不在浏览器的主体区显示,但是会影响响应主体。
常用的响应头
Content-Type:响应主体类型
Content-Length:响应主体长度
Date:响应时间,GMT时间格式
Expires:浏览器缓存控制响应头http/1.0
Cache-Control:浏览器缓存控制,http/1.1
Pragma: 浏览器缓存控制
Connection:keep-alive表示保持连接
Keep-Alive:
每行一个,使用回车+换行完成。
结束后,使用空行!
1.6.3、响应主体, response content
源代码