赞
踩
域名,子域名,DNS,HTTP/HTTPS,证书等
开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
开发语言: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等
SQL注入,文件安全,RCE执行,XSS跨站,CSRF/SSRF/CRLF,反序列化,逻辑越权,未授权访问,XXE/XML,弱口令安全等
请求数据包,请求方法,请求体,响应包,响应头,状态码,代理服务器;
Request,Response,User-Agent,Cookie,Server,Content-Length等;
由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.get直接在浏览器输入,post需要工具发送请求
2.get用url或者cookie传参,post将数据放在body中
3.get的URL有长度限制,post数据可以非常大
4.post比get安全,因为URL看不到数据
5.get用来获取数据,post用来发送数据
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**:发送成功(200)
3**:重定向(302)
4**:客户端错误
400.发送请求有语法错误
401.访问页面没有授权
403.没有权限访问该页面
404.没有该页面
5**:服务端错误
500.服务器内部异常
504.服务器请求超时,没有返回结果
HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。
通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
请求头标:允许客户端传递关于自身的信息和希望的响应形式。
响应头标:服务器和于传递自身信息的响应。
实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
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:关于消息实体的警告信息
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服务器: 友链
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。