目录
1. HTTP协议的定义
Hyper Text Transfer Protocol 超文本传输协议 此协议规定了WEB请求消息与响应消息的格式和规范 涉及到两端:客户端(请求方) 服务器端(响应方) |
2. HTTP请求的过程
1. 浏览器输入服务器的IP地址+端口号/域名 2. 浏览器与服务器建立连接——通过"三次握手" 3. 连接建立好后,浏览器正式向服务器发送请求消息 4. 服务器接收到请求消息,处理请求,再将响应消息发给浏览器 5. 客户端与服务器端断开连接——“四次挥手” 6. 浏览器解析响应消息,将数据信息渲染成页面展示给用户 ![]() |
3. 请求与响应
Message: 消息/报文 是指HTTP客户端与服务器端之间传递的数据块
Request Message:客户端向服务器端发送的请求消息
Response Message:服务器端给客户端返回的响应消息
4. 请求消息详解
4.1. 请求消息的格式
请求行:请求方法 请求地址 协议版本号 |
请求头部:请求头部名1:请求头部值1 。。。。。。 。。。。。。 请求头部名n : 请求头部值n |
空白行 |
请求主体 有的有请求主体(POST) 有的没有请求主体(GET) |
4.2. 请求行解析
请求(起始)行具体解析: | ||||||||
1.请求方法 HTTP1.1版本规定了很多类型,注意单词必须大写!
| ||||||||
2. 请求的URL | ||||||||
3. 协议版本号 HTTP/1.1 |
4.3. 请求头部解析
请求头部解析 |
Host: www.baidu.com 告诉服务器,这个请求要访问哪个域名下的资源,比如一个服务器下有多个服务,要知道访问哪个 Connection:keep-alive 新特性 开启持久连接 浏览器申请服务器"保持连接",以供后续的请求使用,比如:非常多的资源每次都建立挂断连接性能太低 Cache-Control:no-cache 客户端告诉服务器是否缓存此次的请求数据,no-cache表示不要缓存 User-Agent:Mozilla/5.0 浏览器告诉服务器,当前浏览器版本和一些系统参数 Accept: 客户端告诉服务器端自己可以接收的响应消息的内容类型 Accept-Encoding:gzip 客户端告诉服务器自己可以接收压缩数据的格式 Accept-Language:zh-CN(大陆中文) 浏览器告诉服务器当前用户首选的自然语言 Refer:http://www.tmooc.cn 浏览器告诉服务器,当前请求来自于哪个网站 |
4.4. 请求主体解析
请求主体解析 |
如果是GET请求,请求主体为空,因为参数都在url地址后拼接着呢 如果是POST请求,请求主体不为空,格式:name=tom&age=18 |
5. 响应消息详解
5.1. 响应消息的格式
状态行:协议版本 状态码 原因短句 |
响应头部:响应头部名1 :响应头部值1 。。。。。。 。。。。。。 响应头部名n : 响应头部值n |
空行 |
响应主体:有的有响应主体(GET/POST/PUT/DELETE) 有的则没有(HEAD) |
5.2. 响应状态行解析
状态行解析 | ||||||||||
1.协议版本号 HTTP/1.1 | ||||||||||
2.响应状态码 常见的状态码: 200成功响应 301资源被转移到其他URL上 404请求的资源未找到 500服务器代码抛出异常
| ||||||||||
3. 原因短句 对应状态码的简短解释 200 OK |
5.3. 响应头部解析
响应头部解析 |
Server:服务器的种类 Date: 日期,什么时候发送的网页 Content-Type:text/html;charset=UTF-8 响应消息的内容类型,也就是发送给客户端的数据类型 常见的响应主体的内容类型: text/html html页面 text/css css文件 application/javascript js文件 image/png image/jpeg 图片 application/xml xml格式的数据 application/json json格式的数据 Connection:keep-alive 服务器告诉客户端你也要开启持久连接 Lacation:http://oracle.com 通常配合3XX系列的状态码,指定新的跳转地址 |
5.4. 响应主体解析
主要是服务器给客户端响应的结果,可以是一个简单的单词,还可以是HTML片段,或者是JSON(接收后还需要解析) |
6. 操作网页的套路
需求:用户在页面上输入用户名,如果输入是tom显示"用户名已存在",否则显示"欢迎使用"
(1) 获取到对应的HTML元素--给元素定义id值,直接通过id值获取 (2) 为元素绑定(操作)事件 onclick 点击事件 (3) 修改数据或进行业务处理,修改元素的内容id值.innerHTML="HTML要显示的文本" (4) 显示结果 |