文章目录
1. HTTP协议介绍
Http协议是一个TCP协议,采用BS模型,用来传输数据(查询结果等)超文本传输协议,从服务器传输超文本到本地浏览器的传送协议,HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的。
特点:快速简单:客户服务器发送请求,只需要传送请求的方法和路径。请求方法有Get、Post等
协议:使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式(通俗讲,协议就是要保证网络通信的双方,能够互相对接上号。就像是两个人传递纸条通过互相指定的暗号,如果发送天亮了,表示可以打游戏了等)
2. HTTP协议工作过程
4. HTTP协议格式总览
5. HTTP 请求(Request)
5.1 “方法” Method
GET 方法
GET
请求指定的页面信息,并返回实体
常用于获取服务器上的某个资源
(在浏览器中直接输入 URL 回车或点击浏览器收藏夹中的链接,此时浏览器就会发送出一个 GET 请求)
特点:
GET 请求的 body 一般是空的
POST 方法
POST:
用于提交用户输入的数据给服务器(如登录页面)
POST 请求的 header 里面有若干个键值对
POST一般把数据放到Body中
GET和POST区别
GET 用于从服务器获取数据,POST 客户端给服务器提交数据
GET 请求可以被缓存,可以被浏览器保存到收藏夹中;POST 请求不能被缓存
GET只能传输文本数据,也可以传输二进制数据,只不过针对二进制数据进行 urlencode,转码后 就可以放到 url 中
POST 可以传输文本数据,也可以传输二进制数据
扩充(其他方法)
6. HTTP 响应(Response)
6.1 认识 “状态码”(status code)
200 OK
200 OK(表示访问成功)
404 Not Found
表示没有找到资源(发送请求的URL在服务器中未找到)
403 Forbidden
表示访问被拒绝(有的页面需要用户有一点的权限才可以进行访问)
405 Method Not Allowed
表示访问的服务器不能支持请求中的方法或者不能使用该请求中的方法(请求的方法不支持)
500 Internal Server Error
表示服务器出现内部错误(一般是服务器的代码执行过程中遇到了一些特殊的情况,造成服务器崩溃可能会产生这个状态码 ,检查一下自己的代码)
302 Move temporarily
表示临时重定向
301 Moved Permanently
表示永久重定向,当浏览器收到这种响应时,后续的请求都会被自动改成新的地址
6.2 认识 响应"报头"(Header)
响应报头的基本格式和请求报头的格式基本一致,下面介绍下响应报头的 Content-Type 参数
text/html
表示数据格式是 HTML
text/css
表示数据格式是 CSS
application/javascript
表示数据各式是 JavaScript
application/json
表示数据格式是 JSON
Action:HTTP 请求的 URL
Method:HTTP 请求的方法(GET 或 POST 方法)
Content-Type
HOST 的值表示服务器主机的地址和端口
Content-Length 表示body的数据长度,长度单位是字节
Content-Type 表示body的数据格式
三种请求数据格式
application/x-www-form-urlencoded
这是 form 表单提交的数据格式,此时 body 的格式就类似于 query string(是键值对的结构,键值对之间使用 & 分割,键与值之间使用 = 分割
multipart/form-data
这是 form 表单提交的数据格式(需要在 from 标签上加上
enctyped=“multipart/form-data”),通常用于 HTML 提交图片或者文件
Application/Json
body 数据为 json 格式,用一个 { } 括住里面有多个键值对,键值对之间使用逗号分割,键和值之间使用冒号分割
7. 通过form 表单构造 HTTP 请求
7.1 发送 GET 请求
7.2 发送 POST 请求