一个HTTP请求必须要包含的四个步骤就是
1、建立连接(三次握手)
2、发送请求
3、接受响应
4、断开连接(四次挥手)
在一个HTTP请求中,请求的部分有请求报文,接受响应的部分有响应报文
请求报文 包含 1、请求行,2、请求头,3、请求空行,4、请求体
响应报文 包含 1、状态行2、响应头,3、响应体
常见的HTTP响应状态码
在一个HTTP请求的响应报文中的状态会有一个响应状态码
通常会出现五种状态码
1、100~199 一般看不到,因为表示请求继续
100: 继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容
101 请求者已经准备切换协议,服务器页表示同意
2、200~299
2开头的都是表示成功,本次请求成功了,只不过不一样的状态码有不一样的含义
200 标准请求成功 一般表示服务器端提供的是网页
201 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)
203 表示服务器已经成功处理了请求,但是返回的信息可能来自另一源
204 服务器端已经成功处理了请求,但是没有任何数据返回
300~399
3 开头也是成功的一种,但是一般表示重定向
301 永久重定向
302 临时重定向
304 使用的是缓存的数据
305 使用代理
400~499
4 开头表示客户端出现错误了
400 请求的语法服务端不认识
401 未授权(你登录的网站需要授权登录)
403 服务器拒绝了你的请求
404 服务器找不到你请求的URL
407 你的代理没有授权
408 请求超时
410 你请求的数据已经被服务端永久删除
500~599
5 开头的表示服务端出现了错误
500 服务器内部错误
503 服务器当前不可用(过载或者维护)
505 请求的协议服务器不支持
常见的HTTP请求方式
每一个HTTP请求在请求行里面会有一个东西叫做请求方式
不同的请求方式代表的含义不同
- GET 一般用于获取一些信息使用(获取列表资源)
- POST 一般用于发送一些数据给服务器端(登录)用来上传资源
3、PUT 一般用于发送一些数据给服务器让其添加新数据(全体更新)
4、DELETE 一般用于删除某些数据
5、HEAD 类似于GET请求,只不过一般没有响应的具体内容,用于获取报文头
6、CONNECT HTTP/1.1中预留的方式,一般用于管道链接改变为代理的时候使用
7、PATCH 是和put方式类似的一个方式,一般用于更新局部数据(更新密码)
8、OPTIONS 允许客户端查看服务端性能
get和post 区别
1、GET参数以querystring的形式发送,也就是直接拼接在 请求路径的后面;POST参数以request body 的形式发送 ,也就是放在请求体中
2、GET 请求会被浏览器主动缓存;POST不会被浏览器主动缓存,除非手动设置
3、GET 请求根据不同的浏览器对URL长度是有限制的 ;POST 理论上是没有限制的,除非服务端做了限制
4、对参数的类型有限制,只接受ASCII码的格式;对参数类型没有限制理论上可以传递任意数据类型,只不过要和请求头对应
5、GET 请求是明文发送 相对不安全;POST 请求是密文发送 相对安全