zoukankan      html  css  js  c++  java
  • 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 未授权访问相关

  • 相关阅读:
    [HDOJ1261]最少拦截系统
    Gym 100637F F. The Pool for Lucky Ones
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和处理
    HDU 1166 敌兵布阵 线段树
    【Tyvj1038】忠诚 线段树
    Codeforces Gym 100513G G. FacePalm Accounting
    Codeforces Round #313 (Div. 2)B.B. Gerald is into Art
    Codeforces Round #313 (Div. 2) D. Equivalent Strings
    Codeforces Round #313 (Div. 2) C. Gerald's Hexagon 数学
    Codeforces Round #313 (Div. 2) A. Currency System in Geraldion
  • 原文地址:https://www.cnblogs.com/Rain99-/p/12891597.html
Copyright © 2011-2022 走看看