当前位置:   article > 正文

网络安全:WEB应用之http数据包详解_http数据包都有哪些

http数据包都有哪些

知识点(1-3非重点)
1、网站搭建前置知识
域名,子域名,DNS,HTTP/HTTPS,证书等
  • 1
2、WEB应用环境架构类
开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
开发语言:asp,php,aspx,jsp,java,python,ruby,go,html,javascript等
程序源码:根据开发语言分类;应用类型分类;开源CMS分类;开发框架分类等
中间件容器:IIS,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等
数据库类型:Access,Mysql,Mssql,Oracle,db2,Sybase,Redis,MongoDB等
服务器操作系统:Windows系列,Linux系列,Mac系列等
第三方软件:phpmyadmin,vs-ftpd,VNC,ELK,Openssh等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
3、WEB应用安全漏洞分类
SQL注入,文件安全,RCE执行,XSS跨站,CSRF/SSRF/CRLF,反序列化,逻辑越权,未授权访问,XXE/XML,弱口令安全等
  • 1
4、WEB请求返回过程数据包【重点】
请求数据包,请求方法,请求体,响应包,响应头,状态码,代理服务器;
Request,Response,User-Agent,Cookie,Server,Content-Length等;
  • 1
  • 2




WEB请求处理流程

HTTP协议是什么?

由w3c制定的一种网络应用层协议,定义了浏览器与web服务器之间通信时所使用的数据格式。

通信过程

1.浏览器建立与web服务器之间的连接
2.浏览器将请求数据打包(生成请求数据包)并发送到web服务器
3.web服务器将处理结果打包(生成响应数据包)并发送给浏览器
4.web服务器关闭连接

总结:

建立连接——>发送请求数据包——>返回响应数据包——>关闭连接

数据格式

请求数据包包含什么
1.请求行:请求类型/请求资源路径、协议的版本和类型
2.请求头:一些键值对,一般由w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义
3.【空行】请求头与请求体之间用一个空行隔开;
4.请求体:要发送的数据(一般post方式会使用);例:userName=123&password=123&returnUrl=/
例如:

# Request Headers
POST /adduser HTTP/1.1
Host: localhost:8030
Connection: keep-alive
Content-Length: 16
Pragma: no-cache
Cache-Control: no-cache
Origin: chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9


# Form Data

name=name&age=11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
get和post的区别
1.get直接在浏览器输入,post需要工具发送请求
2.get用url或者cookie传参,post将数据放在body中
3.get的URL有长度限制,post数据可以非常大
4.post比get安全,因为URL看不到数据
5.get用来获取数据,post用来发送数据
  • 1
  • 2
  • 3
  • 4
  • 5
响应数据包包含什么
1.状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空格分隔
2.响应头:包含服务器类型、日期、长度、内容类型等
3.【空行】响应头与响应体之间用空行隔开
4.响应正文:程序处理后果,浏览器会将实体内容中的数据取出来,生成相应的页面

如:
Server:Apache Tomcat/5.0.12
Date:Mon,6Oct2003 13:13:33 GMT
Content-Type:text/html
Last-Moified:Mon,6 Oct 2003 13:23:42 GMT
Content-Length:112
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
常见状态码
1**:提示信息-表示请求已收到,继续处理
2**:发送成功(200)
3**:重定向(302)
4**:客户端错误
  400.发送请求有语法错误
  401.访问页面没有授权
  403.没有权限访问该页面
  404.没有该页面
5**:服务端错误
  500.服务器内部异常
  504.服务器请求超时,没有返回结果
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
http请求头有哪些?

HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。

    通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
    请求头标:允许客户端传递关于自身的信息和希望的响应形式。
    响应头标:服务器和于传递自身信息的响应。
    实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
  • 1
  • 2
  • 3
  • 4
请求头含义:
HTTP Request Header 请求头
Accept:指定客户端能够接收的内容类型。
Accept-Charset:浏览器可以接受的字符编码集。
Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码类型。
Accept-Language:浏览器可接受的语言。
Accept-Ranges:可以请求网页实体的一个或者多个子范围字段。
AuthorizationHTTP:授权的授权证书。
Cache-Control:指定请求和响应遵循的缓存机制。
Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接)
CookieHTTP:请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Content-Length:请求的内容长度。
Content-Type:请求的与实体对应的MIME信息。
Date:请求发送的日期和时间。
Expect:请求的特定的服务器行为。
From:发出请求的用户的Email。
Host:指定请求的服务器的域名和端口号。
If-Match:只有请求内容与实体相匹配才有效。
If-Modified-Since:如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码。
If-None-Match:如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变。
If-Range:如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。
If-Unmodified-Since:只在实体在指定时间之后未被修改才请求成功。
Max-Forwards:限制信息通过代理和网关传送的时间。
Pragma:用来包含实现特定的指令。
Proxy-Authorization:连接到代理的授权证书。
Range:只请求实体的一部分,指定范围。
Referer:先前网页的地址,当前请求网页紧随其后,即来路。
TE:客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息。
Upgrade:向服务器指定某种传输协议以便服务器进行转换(如果支持。
User-AgentUser-Agent:的内容包含发出请求的用户信息。
Via:通知中间网关或代理服务器地址,通信协议。
Warning:关于消息实体的警告信息

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

HTTP Responses Header 响应头
Accept-Ranges:表明服务器是否支持指定范围请求及哪种类型的分段请求。

Age:从原始服务器到代理缓存形成的估算时间(以秒计,非负)。

Allow:对某网络资源的有效的请求行为,不允许则返回405。

Cache-Control:告诉所有的缓存机制是否可以缓存及哪种类型。

Content-Encodingweb:服务器支持的返回内容压缩编码类型。。

Content-Language:响应体的语言。

Content-Length:响应体的长度。

Content-Location:请求资源可替代的备用的另一地址。

Content-MD5:返回资源的MD5校验值。

Content-Range:在整个返回体中本部分的字节位置。

Content-Type:返回内容的MIME类型。

Date:原始服务器消息发出的时间。

ETag:请求变量的实体标签的当前值。

Expires:响应过期的日期和时间。

Last-Modified:请求资源的最后修改时间。

Location:用来重定向接收方到非请求URL的位置来完成请求或标识新的资源。

Pragma:包括实现特定的指令,它可应用到响应链上的任何接收方。

Proxy-Authenticate:它指出认证方案和可应用到代理的该URL上的参数。

refresh:应用于重定向或一个新的资源被创造,在5秒之后重定向(由网景提出,被大部分浏览器支持)

Retry-After:如果实体暂时不可取,通知客户端在指定时间之后再次尝试。

Serverweb:服务器软件名称。

Set-Cookie:设置Http Cookie。

Trailer:指出头域在分块传输编码的尾部存在。

Transfer-Encoding:文件传输编码。

Vary:告诉下游代理是使用缓存响应还是从原始服务器请求。

Via:告知代理客户端响应是通过哪里发送的。

Warning:警告实体可能存在的问题。

WWW-Authenticate:表明客户端请求实体应该使用的授权方案。

22张图详解浏览器请求数据包如何到达Web服务器: 友链

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/582763
推荐阅读
相关标签
  

闽ICP备14008679号