HTTP基础

目录

HTTP协议

常见http状态响应码

http协议网络缓存

HTTP协议

HTTP 超文本传输协议所有web应用程序使用的通信协议 传输文本 图片 视频
    作用 :静态资源 支持动态资源    
    http模型 :消息模型—请求与响应  但是每次请求可能使用的不同的tcp连接
        非常连接型的


HTTP请求(请求与响应 包含一个或多个单行显示的消息头然后是一个强制空白行 最后是消息主体)可选GET POST_)

    http请求第一行:3个部分组成 请求方法 请求URL  HTTP版本
    
    HTTP其他请求头:单独成行

    HTTP 请求主体 (如果方法是GET 那么亲求主体为空)


GET :获取资源 也可以利用URL查询字符串的形式向请求的资源发送参数
    例如 http://www.xx.com/inde.php?id=1


POST:提交数据,执行操作 数据通过请求主体传输 
    例如 登陆页面数据提交


POST 与 GET 区别
    GET提交的数据会在URL中显示 POST数据在消息主体中显示 、更具有安全性


其他的请求方法
    HEAD:类似GET 但是HEAD不要求返回响应主体 返回数据少,节省宽带 检测目标资源是否存在
    OPRIONS:要求服务器返回对某一资源有效的HTTP请求方法 服务器返回Allow消息头的响应 包含支持的请求方法
    PUT:试图将请求消息主体中的内容 向服务器进行上传到具体文件
    TRACE:诊断 服务器需要在响应主题中返回其收到的请求消息具体内容 检测代理服务器
        检测客户端与服务器之间是否存在代理服务器


URL 统一资源定位符 表示web资源的唯一标识符 通过它可以获取其标示的资源
    protocol://hostname[:port]/[path]/file[?param=value]提交多个参数 使用 & 连接   
    http/https    ip地址/域名 端口   路径  文件名    参数 值 

    REST 表述性状态转移 是一种分布式系统的体系结构 其中请求和响应博阿寒系统资源当前状态的表述
        http://www.xxx.com/search?name=aaa&age=14
                REST->
        http://www.xxx.com/search/aaa/14


常见HTTP请求头
    Referer:用于表示发出请求的原始RUL(及是从哪个页面跳转过来的)

    User-Agent: 用于提供与浏览器或其他生成请求的客户端软件有关的信息
        判断用户请求使用的浏览器版本


Host:用于指定被访问的完整URL中的主机名称
    HTTP/1.1中Host必须指定

Cookie:用于提交服务器向客户端之前发送的其他参数
    Cookie由一个名/值对构成
    例如:cookie:name=admin
    Set-cookie也可以设置cookie其他属性
        1、expires 设置cookie有效时间 否则cooike的有效时间只会在会话期间
        2 domain 指定cookie的有效域 这个域必须与收到cookie的域相同
        3 path 指定cookie有效的URL路径
        4 secure 设置这个属性后 仅在HTTPS请求中提交 cookie
        5 HttpOnly 设置这个属性后 无法通过javascript访问cookie
    
HTTP响应
    HTTP响应第一行:HTTP版本 状态码 状态文字
    
    多行HTTP响应头
        空行
    HTTP响应主体 包含响应数据

响应状态码
    1xx 提供信息
    2xx 请求被成功提交
    3xx 客户端被重定向到其他资源
    4xx 请求包含某种错误
    5xx 服务器执行请求时遇到错误
常见HTTP响应头
    server:包含一个旗标 指明web服务器中间件类型 apache ngix
    X-Powered-By:包含动态页面所使用的服务器端脚本类型  php js
    
    Set-Cookie:像浏览器发送Cookie 它将随后包含在下一个访问中
    
    Pragma:浏览器缓存是否保存响应内容 访问动态页面不保存(no-cache)
    Expires:设定缓存保存的过期时间
    
    Content-Type:指定消息主体中包含的文档类型  例如 text/html
    Content-Length:指定消息主体的字节长度

HTTPS:HTTPS通过安全传输机制(SSL安全套接字)传输数据 可以保证数据的隐秘性与完整性
        降低非入侵拦截攻击的可能性 SSL实际上早已由TLS(传输层安全)代替 但TLS依然习惯被称为SSL


HTTP 其他部分 - HTTP代理
    HTTP代理服务器 是一个协调客户端浏览器与目标web服务器之间的服务器

HTTP其他部分 -HTTP认证
    HTTP拥有自己的用户身份验证机制 内部经常使用 互联网很少使用
        Basic
        NTLM
        Digest
    限制不同用户访问资源的权限


Web编码方式的本质
    HTTP协议和HTML语言都是基于文本的 静态页面不需要提交数据 范式后期动态页面需要用户提交数据
     针对与不常见的字符和二进制数据进行不同方式的编码 以此进行安全处理
        1对Web应用程序进行测试需要使用相关的编码方式对数据进行编码 确保应用程序按照相应的范式进行处理
        2渗透测试人员如果可以控制应用程序的编码方案 造成于其设计人员无法预估的行为 比如 WAF,脚本过滤

常见http状态响应码

200  正常返回请求资源
206  Partial Content 部分内容 流媒体技术的断点续传
3xx 开头的
    301:资源永久转移到新地址            例如www.360buy.com -----> www.jd.com
    302 :同一域名下 当前资源存在但需要跳转到另外一个页面 例如:登陆成功后跳转
    304:not Modified 资源没有发生变化 使用缓存文件

4XX    
    400 请求语法错误 例如:HTT请求头设置错误
    401 未授权错误 例如 HTTP基本认证
    403 服务器拒绝访问 例如:访问目录 但是服务器禁止目录浏览
    404 资源不存在

5xx
    500 服务器内部错误 例如:代码错误 数据库连接错误
    503 服务器维护或过载 无法处理当前请求 过一段时间恢复

http协议网络缓存

http缓存:当Web请求抵达缓存时 如果本地已经具有缓存的 副本 就可以直接从本地存储设备而不是远程服务器中提取这个文档
    缓存优点:1,减少数据传输 节省传输时间
        2,减少服务器负担 提高网站性能
        3,加快客户端加载页面的速度

判断最新缓存
    根据缓存中保存的资源最后修改时间与服务器资源文件的最后修改时间对比 如果一致使用缓存 
        http请求通过 if-Modified-Since 传递缓存保存的最后修改时间
        
        last-Modified 最新的修改时间
    
    某些情况下 不能使用 if-Modifieed-Since 解决问题 此时可以比对文件内容 判断资源是否最新
        例如: 文件修改时间虽然改变 但是内容未改变 服务器不希望客户端认为文件修改
    
    Etag 实体标签 根据实体内容生成的一段hash 字符 可以标识资源状态 通过http请求 if-None-Match 
        传递缓存内容的Etag与服务端资源的Etag对比 如果一致 使用缓存


如果返回状态码为 
    响应 200 返回的是新资源
    304    重定向到本地的缓存资源


 


    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@pon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值