什么是http:
http是属于应用层(基于tcp的连接方式)的面向对象的协议,是计算机通过网络通信的规则,使得浏览器向web服务器请求信息和服务
http协议特点:
- http是一种无状态协议(对食物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,他必须重传)
- 允许任意类型的数据对象,正在传输的类型由Content—Type加以标记
- 无连接:限制每次连接只处理一个请求,服务器处理完客户的应答后,断开连接。
- 支持c/s模式
- 客户向服务器请求服务时,只需传送请求方法和路径
完整的http请求:有7个步骤
1建立tcp连接
2web浏览器向web服务器发送请求命令
3web浏览器发送请求头信息(在chrome下f12查看network中的headers)
4web服务器应答
5web服务器发送应答头信息
6web服务器向浏览器发送数据
7web服务器关闭tcp连接
一个http请求的请求行一般由4部分组成:Method Request-URI HTTP-Version CRLF
Method:http请求的方法或动作,比如是get还是post请求
2正在请求的url(请求的地址
3请求头,包含一些客户端环境信息,身份验证信息,版本信息等
4请求体(请求正文,包含客户提交的查询字符串信息,表单信息等)
get:
一般用于信息获取,使用url传递参数,对所发送信息的数量也有限制,一般在2000个字符串
post:
一般用于修改服务器上的资源,对所发送信息的数量无限制
一个get请求执行一次和执行1万次是一样的
一个http响应由三部分组成:
1一个数字和文字组成的状态码,用来显示请求是成功还是失败,
2响应头,响应头也和请求头一样包含许多有用信息,例如服务器类型,日期时间,内容类型和长度
3响应体(响应正文,服务器传过来的字符串,http代码
http状态码由3位数字组成,首位数字定义了状态码的类型:
1xx:信息类,表示收到web浏览器请求,正在进一步处理中
2xx:成功,表示用户请求被争取接受,理解和处理例如:200
ok
3xx:重定向,表示请求没有成功,客户必须采取进一步动作
4xx:客户端错误,表示客户端提交的请求有错误,例如:404not
found。意味着请求中所引用的文档不存在
5xx:服务器错误,表示服务器不能完成对请求的处理 如:500
几种常见状态码
200:OK 请求成功 处理方式:获得响应的内容,进行处理
400:Bad Request 非法请求 处理方式:丢弃
401:Unauthorized 未授权 处理方式:丢弃
403:禁止 处理方式:丢弃
404:没有找到 处理方式:丢弃
500:服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
502:bad gate 网关错误
503:服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。
请求报头:
Accept:用于指定客户端接受哪些类型的信息
Accept—Charset:指定客户端接受的字符集
Accept-Encoding:指定可接受的内容编码
Accept—Language:指定一种自然语言。
Authorization:请求报头域主要用于验证客户端有权查看某个资源
Host:指定被请求资源的Internet主机和端口号
响应报头:
Location:响应报头域用于重定向接受者到一个新的位置,Location响应报头域常用在更换域名的时候
Server:服务器用来处理请求的软件信息