URL
基本格式:scheme://host[:port#]/path/.../[?query-string][#anchor]
scheme:访问服务器以获取资源时要使用哪种协议,比如HTTP,HTTPS,和FTP
host:HTTP服务器的IP地址或域名
port#:HTTP服务器的默认端口是80,可以省略、若使用了别的端口,必须指明,www.cnblogs.com:8080
path:访问资源的路径
query-string:发给HTTP服务器的数据
anchor:锚
1.请求行
分为三个部分:1.请求方法(Method)2.请求地址(PATH)3.协议版本
HTTP/1.1协议中定义了八种方法
GET:向指定资源发出“显示”请求,只用于读取数据上,不应该用于产生副作用的操作中
POST:指定资源提交数据,请求服务器进行处理(例如提交表单或上传文件)。数据被包含在请求文本中。这个请求可能会创建新的资源或者修改现有的资源,或者两者皆有
PUT:向指定资源位置上传其最新的内容
DELETE:请求服务器删除Request-URL所标识的资源
Content-Type:请求体/响应体的类型,如:text/plain,application/json
Accept:说明接收的类型,可以多个值。用,分开
eg: Accept-Charset : image/gif, 表明客户端希望接受GIF图像格式的资源。Accept:text/html,表明客户端希望接受HTML文本
Content-Encoding:请求体/响应体的编码格式,如gzip,deflate
Accept-Encoding:告知对方我方接受的Content-Encoding,类似于Accept,但是他用于指定可接受的内容编码。
eg:Accept-Encoding:gzip.defjate,
ETag:给当前资源的标识,和Last-Modified,If-None-Match,If-modified-Since配合,用于缓存控制
Cache-Control:取值一般为 no-cache,max-age=xx,xx为整数,表示资源缓存有效期(秒)
User-Agent : User-Agent请求报头域允许客户端将他的操作系统,浏览器和其他属性告诉服务器。不过这个报头域不是必须的
请求体:又叫请求正文(get方法没有请求正文),是post请求方式中的请求参数,以key=value 形式进行存储,多个请求参数之间用&连接,如果请求当中请求体,那么在请求头当中的Content-length
属性记录的就是该请求的长度