HTTP协议

HTTP和HTTPS的区别

HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
HTTP 是不安全的,⽽ HTTPS 是安全的
HTTP 标准端⼝是 80 ,⽽ HTTPS 的标准端⼝是 443
在 OSI ⽹络模型中,HTTP ⼯作于应⽤层,⽽ HTTPS ⼯作在传输层
HTTP ⽆需加密,⽽ HTTPS 对传输的数据进⾏加密
HTTP ⽆需证书,⽽ HTTPS 需要认证证书

请求包

一个http请求由三部分组成,分别是:请求⾏、请求头、请求正⽂。

请求⾏

请求⾏以⼀个⽅法符号开头,以空格分开,后⾯跟着请求的URI和协议的版本。
格式如下:Method Request-URI HTTP-Version CRLF

Method表⽰请求⽅法代码
Request-URI是⼀个统⼀资源标识符
HTTP-Version表⽰请求的HTTP协议版本
CRLF表⽰回车和换⾏(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

常见请求方法

GET 请求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 请求获取由Request-URI所标识的资源的响应消息报头
PUT 请求服务器存储⼀个资源,并⽤Request-URI作为其标识
DELETE 请求服务器删除Request-URI所标识的资源
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

HEAD因其忽略响应正文而速度较快,在信息收集中常用于进行子域名枚举,目录枚举。
PUT与之相关的有IIS PUT漏洞。
OPTIONS用于获取服务器支持的请求方法,其响应头中的Allow表明支持的方法

请求头

Host: www.bilibili.com
Connection: close
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
Accept: /
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: https://www.bilibili.com/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7
Cookie: _uuid=166DDD97-C6E6-BEA6-414B-D2

常见请求头

User-Agent:包含发出请求的⽤户信息。
Accept:Accept请求报头域⽤于指定客户端接受哪些类型的信息。//eg:Accept:image/gif,表明客户端希望接受GIF图象格式的资源;Accept:text/html,表明客户端希望接受html⽂本。
Referer:告诉服务器我是从哪个页⾯链接过来的
Cookie:⾝份凭证

UA会暴露用户访问时的设备信息,包括系统,浏览器等
Referer是浏览器加上的,验证Referer是防御URL跳转,CSRF请求/读取的方法之一

响应包

一个HTTP响应也是由三个部分组成,分别是:状态⾏、响应头、响应正⽂

状态⾏

状态⾏格式如下:
HTTP-Version Status-Code Reason-Phrase CRLF

HTTP-Version表⽰服务器HTTP协议的版本
Status-Code表⽰服务器发回的响应状态代码
Reason-Phrase表⽰状态代码的⽂本描述。

常见的状态码

200 OK 客户端请求成功
301 Moved Permanently 永久重定向。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302 Found 临时重定向。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 请求要求用户的身份认证。会弹窗要求输入用户名和密码
403 Forbidden 服务器收到请求,但是拒绝提供服务
404 Not Found 请求资源不存在
500 Internal Server Error 服务器发⽣不可预期的错误
503 Server Unavailable 服务器当前不能处理客户端的请求,⼀段时间后可能恢复正常

401 可用于钓鱼,欺骗用户名密码
403 有的网站直接访问返回403,这时候需要通过目录/文件爆破来正常访问网站https://blog.csdn.net/qq_36119192/article/details/89552338
404 同403,有的网站仅删除了首页,目录等仍存在,可通过目录/文件爆破进一步访问

响应头

Accept-Ranges: bytes
Cache-Control: max-age=315360000
Connection: Keep-Alive
Content-Length: 705
Content-Type: image/gif
Date: Sat, 01 Jun 2019 05:46:40 GMT
Etag: "2c1-4a6473f6030c0"
Expires: Tue, 29 May 2029 05:46:40 GMT
Last-Modified: Wed, 22 Jun 2011 06:40:43 GMT
Server: Apache

常见的响应头

Server Web服务器名称
Set-cookie 服务器向客户端发送的信息
Location 服务器通过这个头告诉浏览器去访问哪个页⾯,浏览器接收到这个请求后,通常会⽴刻访问Location头所指向的页⾯,通过配合302状态码
Refresh 服务器通过这个告诉浏览器定时刷新浏览器

Server 会暴露服务器的容器和脚本语言版本
Location 未授权访问相关

posted @ 2020-05-14 21:48  雨九九  阅读(419)  评论(0编辑  收藏  举报