HTTP请求与响应

目录

1. HTTP协议的定义

2. HTTP请求的过程

3. 请求与响应

4. 请求消息详解

4.1. 请求消息的格式

4.2. 请求行解析

4.3. 请求头部解析

4.4. 请求主体解析

5. 响应消息详解

5.1. 响应消息的格式

5.2. 响应状态行解析

5.3. 响应头部解析

5.4. 响应主体解析

6. 操作网页的套路

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版本规定了很多类型,注意单词必须大写!

GET 查

从服务器上获取资源,资源可以是任何类型(文本/图片/音视频等)

使用查询字符串传参?id=3没有请求主体获取方式req.query

使用斜杠拼接的方式传参/:id没有请求主体获取方式req.params

POST 增

主要向服务器提交数据,相当于写入或者上传

有请求主体所以记得要在body中传参获取方式req.body

PUT 改

类似于POST,PUT有修改的含义,有请求主体

DELETE 删

类似于GET,删除资源,没有请求主体

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服务器代码抛出异常

1** 信息性

服务器接收请求,需要继续执行后续的操作

2** 成功

报文已成功收到,并正确处理

3** 重定向

资源被转移,告诉浏览器,资源的新地址,浏览器会按照新地址重新定位

4** 客户端错误

反馈的是客户端的某种错,一般由客户端处理

5** 服务器内部错误

服务器内部处理请求时发生异常

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) 显示结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值