CTFWeb篇02-HTTP
HTTP:
超文本传输协议
用于定义WEB浏览器与WEB服务器之间交换数据的过程
规定了请求和响应的整个过程。
http请求:
- 一个状态行
- request URL:请求路径
- request method:请求方式
- GET;POST;DELETE;PUT;PATCH;HEAD;OPTIONS;CONNECT;TRACE
- 若干请求头
- referer
- 表示当前网页来源于哪里,采用的格式是URL,可以凭此查到访客的来源
- referer-policy策略:
- no-referer:该策略表示不发送referer信息
- no-referrer-when-downgrade:如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况发送
- origin:Referer字段一律只发送源信息(协议+域名+端口),不管是否跨域
- origin-when-cross-origin:同源时,发送完整的Referer字段,跨域时发送源信息。
- strict-origin:如果从 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,其他情况只发送源信息。
- strict-origin-when-cross-origin:同源时,发送完整的Referer字段;跨域时,如果 HTTPS 网址链接到 HTTP 网址,不发送Referer字段,否则发送源信息
- unsafe-url:Referer字段包含源信息、路径和查询字符串,不包含锚点、用户名和密码
- referer
- 请求的实体内容
(1)请求行/请求方法(重点掌握):
GET请求
:
1.通常用来从浏览器获取内容。
2.请求参数默认在地址栏中。格式:URL/参数1=???(&参数2=???......)
。
3.请求参数的大小有限制,一般1-8KB,不同浏览器不同。
4.默认的请求方式。5.相对不安全(地址栏直接发现)
POST请求
:
1.通常用来提交内容(提交表单(登录、注册、个人信息填写等))
2.请求参数在实体,即Form Data
(表单数据)中。
3.请求参数的大小认为没有限制。
4.上传文件必须使用post请求。5.相对安全
DELETE请求
:
1.用于删除内容。
2.有restful风格该风格也支持PUT;PATCH。3.格式:URL/delete/...(...中为删除的内容)
PUT请求
:
1.用于修改,携带实体内容,修改的同时会覆盖,即拿新的内容覆盖原先内容
2.格式:URL/update/...(同上)
PATCH请求
:
1.同样用于修改,但不会覆盖。
2.格式:URL/patch/...(同上)
(2)HTTP请求头:request-header
1.accept:浏览器所接收的信息,通知服务器浏览器可以接受的文件类型
2.accept-Encoding:通知服务器浏览器接收的编码方式
3.accept-Language:通知服务器浏览器接收的语言
4.connection:保持连接
5.host:主机名称,要访问的主机名称。eg.localhost:访问自己的电脑和端口。
6.user-agent:发出请求的客户端信息
7.cookie:浏览器存储的缓存信息,把保存在该请求域名的所有cookies发送给服务器。
8.content-type:浏览器所发出的内容类型。【1.application/x-www-form-urlencoded:表单形式,
9.referer:当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
10.X-Forwarded-For:简称XFF头,代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项
注意:HTTP默认端口为80,HTTPS为443,HTTP有1.0和1.1两个版本,1.0:发出请求,中断连接,1.1发出请求,保持连接,如果同样的请求,复用连接。
(3)请求的实体内容:通常post;put;patch请求携带的参数放置在实体中,get;delete在地址栏。
http响应
- 一个状态行(被放在请求中)
- 响应的状态信息:数字前,不同浏览器内容不同
- 响应的状态码:一个数字。
- 200(请求被成功处理)
304(使用缓存)
404(路径错误/资源不存在)
500(服务器错误(程序员出错))
302/307(请求重定向(从一个页面转到另一个页面(比如登录成功之后跳转到首页)))
401(请求未认证(比如需要登录权限进行操作,没有登录))
- 200(请求被成功处理)
- HTTP状态码分类
- 1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错
了解更多状态码
- 1** 信息,服务器收到请求,需要请求者继续执行操作
- 若干响应头
- 响应的实体内容
- 服务器返给客户端的数据
(1)HTTP响应头:response header
1.connection:保持连接
2.content-type
- text/html(网页形式)
- image/jpeg
- text/json(json数据格式)
- application/json(json格式的数据)
3.date
4.Set-Cookie头:设置HTTP cookie,服务器返回给浏览器
HTTPS
安全套接字层超文本传输协议
比HTTP更安全
加入了SSL协议,该协议依靠证书来验证服务器的身份并为通信提供加密
非对称加密公钥加密信息私钥解密,私钥加密信息公钥解密