一、HTTP请求/响应报文
1、HTTP通信过程:
客户端发送请求给服务端,服务端返回响应给客户端。
2、报文:
报文:HTTP协议客户端和服务端之间交互的信息。分为报文首部和报文数据两部分。
请求报文:客户端向服务器提交的请求信息。
响应报文:服务端返回给客户端的响应信息。
3、请求报文结构:
如下图所示:包括请求行、请求头部、空行、请求数据四部分组成。
3.1、请求行:包括请求方法、请求URI和协议版本。
3.2、请求头部:通知服务器客户端的请求信息。键值对形式出现,每行一对,关键字和值用英文冒号“:”分隔。
常用头部字段:
Accept:客户端可接受的信息类型,如text/html,application/xhtml+xml
Accept-Charset:客户端可接受的字符集,如gb2312
Accept-Encoding:客户端可接受的编码方式,如gzip
Accept-Language:客户端可接受的语言类型,如:zh-CN
Authorization:HTTP身份验证的凭证
Content-Length:设置请求体的字节长度,get请求可以没有,post请求必须包含这个
Host:设置服务器域名和TCP端口号,http协议,80端口就可以省略
Referer:客户端通过这个头告诉服务器,它是从哪个资源来访问服务器的,也就是防盗链
User-Agent:包含发出请求的客户端信息,浏览器类型/版本等,如:Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Cookie:在客户端记录信息确定用户身份,设置服务器时使用set-cookie
Cache-Control:怎样处理缓存,例如:Cache-Control: no-cache
From:客户端的的email地址
Connection:告诉服务器这个客户端想要使用怎样的连接方式,值为keep-alive和close
3.3、空行:分隔请求头部和请求数据的。
3.4、请求数据:GET方法中不使用,POST方法中使用。一般是存储post的参数和参数数据。
4、响应报文结构:
包括状态行、响应头部、空行、响应数据
4.1、状态行:协议版本、状态码、状态描述。
4.2、响应头部:服务端返回给客户端的一些描述信息。键值对形式出现,每行一对,关键字和值用英文冒号“:”分隔。
常用头部字段:
Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式。
Content-Length:服务器通过这个头告诉浏览器回送数据的长度。
Content-Disposition:告诉浏览器以下载方式打开数据。
Content-Type:服务器通过这个头告诉浏览器回送数据的类型
Last-Modified:指定服务器上保存内容的最后修订时间。
Location:重定向的跳转的路径
Refresh :定时刷新/定时跳转
server:服务器信息
set-Cookie:cookie信息
4.3、空行:分隔响应头和响应数据。
4.4、响应数据:服务端返回给客户端的数据,例如html页面,json数据等。
二、请求方法
1、最常用的三种请求方法:
get :请求资源(请求指定页面信息,并返回响应数据)
post :向服务器提交数据进行处理请求(提交表单、上传文件),会新建数据或修改/删除数据。
head :与get请求类似,但不返回响应数据,只返回响应头。黑客攻击会就用这个去看服务器信息等。
三、状态码
1、状态码作用:
描述返回的结果。包括服务端返回的响应信息是否正常、服务器是否正常工作、通知出现的错误等。
2、状态码类别:
1XX:指定客户端进行某些动作
2XX:请求处理成功
3XX:重定向
4XX:客户端请求错误
5XX:服务端错误
3、常用状态码:
200 请求成功,服务器成功返回内容。
注意:状态码为200,不代表返回的响应数据一定是对的(一定是我们想要请求的数据),这只代表服务器正常响应了客户端请求。
301 永久重定向
302 临时重定向
400 请求语法错误或参数错误
403 服务器拒绝执行请求
404 服务器找不到请求资源
500 服务器故障无法提供服务
503 服务器超负载或停机维护,一段时间后能提供服务
领取专属 10元无门槛券
私享最新 技术干货