HTTP请求方法
GET: 向指定的资源发出“显示”请求。 用于获取请页面的指定信息(以实体的格式)。如果请求资源是动态脚本(非HTML),则返回文本是Web容器解析后的HTML源代码,而不是源文件。例如请求 index.php,返回的并不是index.php源文件而是解析后的HTML代码。例如:
GET /index.php?id=1 HTTP/1.1
HOST: WWW.sbjzj.com
使用GET请求index.php,并且id参数为1,服务器脚本接收id参数查询数据,然后返回解析过的HTML数据。
HEAD: 与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。 POST: 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件提交注册信息等)。
PUT: 向指定资源位置上传其最新内容。
PUT /input.txt
HOST:www.hhh.com
Content-Length: 9
sekiro666
上述PUT请求会在主机根目录下创建input.txt,内容为sekiro666,一般服务器会关闭PUT方法,因为它可以在服务器创建文件,这很危险!
DELETE: 用于请求服务器删除指定的资源。一般会被关闭,因为客户端可以进行删除文件操作,很危险!
TRACE: 回显服务器收到的请求,主要用于测试或诊断。
OPTIONS: 使服务器传回该资源所支持的所有HTTP请求方法。用’*'来代替资源名称,向务器发送OPTIONS请求,可以测试服务器功能是否正常,或者了解服务器性能(多数用于调试)
CONNECT: HTTP/1.1协议中预留的,可以用于能动态切换到隧道的代理通常用于SSL加密服务器的链接
HTTP状态码
用户发起HTTP请求,服务器接收后返回响应信息,HTTP响应第一行中就包含有状态码:
HTTP/1.1 200 OK
状态码由一个3位数组成,第一位数字定义响应的类别
1xx:指示信息–表示请求已接收,继续处理 范围:100~101 2xx:成功–表示请求已被成功接收、理解、接受 200~206 3xx:重定向–要完成请求必须进行更进一步的操作 300~305 4xx:客户端错误–请求有语法错误或请求无法实现 400~415 5xx:服务器错误 服务器运行出错或者网站g了 500~505
常见状态码:
200 OK :客户端请求成功
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权
403 Forbidden :服务器收到请求,但是拒绝提供服务
404 Not Found :请求资源不存在,可能是输入了错误的URL(懂得都懂)
500 Internal Server Error:服务器内部发生不可预期的错误
503 Server Unavailable : 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
HTTP消息
啥是HTTP消息?
HTTP消息又称为HTTP头 由4部分构成 请求头、响应头、实体头、普通头。
1、请求头
请求头出现在HTTP请求中,请求报头允许客户端像服务器传递请求的附加信息和客户端自身的信息。
(1)Host
Host 请求报头域主要用于指定被请求资源的Internet主机与端口号 比如:
HOST: www.520lol.com:80
(2)User-Agent
User-Agent 请求报头域使客户端将它的操作系统,浏览器信息等属性告诉服务器。登录有点网站可以看到我们的系统、浏览器信息就是利用了这个。
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
(3) Referer
Referer包含一个URL,表示访问一个URL时的上一个URL也就是来源页比如:
Referer:www.power.com/login.php
以上Referer字段代表用户从login.php来到当前页面。给百度投放广告公司就可以根据这个看到投放给百度广告是否发挥了作用。
(4)Cookie
Cookie是非常重要的请求头,cookies中文名称为小型文本文件,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。相当于身份验证。
(5)Range可以请求实体的部分内容,多线程下载必定会用到此请求头。比如:
表示头500字节: bytes=0~499
表示第二个500字节:bytes=500~999
表示最后500字节: bytes=-500
表示500字节以后的范围:bytes=500-
(6)x-forward-for
XXF头,它代表请求端的IP,可以有多个,中间以逗号隔开。
(7)Accept
用于指定客户端接收哪些MIME类型的信息,比如
Accept:text/html
(8) Accept-Charset
指定客户端接收的字符集 如:
Accept-Charset: utf-8
2、响应头
响应头是服务器根据请求向客户端发送的HTTP头。常见HTTP响应头如下
(1)Server
服务器所使用的Web服务器名如:
Server:Apache/2.4.5
攻击者通过查看此头可以探测Web服务器名称,建议在服务器端修改此头的信息
(2)Set-Cookie
向客户端设置Cookie,通过查看此头,可清楚看到服务器发送给客户端看的Cookie信息
(3)Last-Moidfied
服务器告诉浏览器资源的最后修改实践
(4)Location
服务器告诉浏览器应该去访问哪个页面,浏览器收到这个请求后会马上访问Location头所指的页面通常配合302状态码使用。
(5)Refresh
服务器通过Refresh头告诉浏览器定时刷新浏览器
3、普通头(了解即可)
在普通头重有少数报头域用于所以的请求和响应消息,但并不用于被传输的实体,只用于被传输的消息比如Date,表示消息产生的时间日期 Cache-control,控制浏览器的缓存,Connection,允许发送指定连接的选项
4、实体头
请求和响应消息都可以传送一个实体头。但实体头定义了关于实体正文和请求所标识的资源的元信息。元信息也是实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次修改时间等等。下面是常见实体头
(1)Content-Type
用于向接收方说明实体的介质类型,即是Internet Media Type,互联网媒体类型,也叫做MIME类型。
Content-Type: image/gif
(2)Content-Encoding
被用作媒体类型的修饰符,它的值指示了已经被应用到了实体正文的附加内容的编码。所以要获得Content-Type中所引用的媒体类型,必须采用相应的解码机制。
(3)Content-Length
指明实体正文的长度,以字节方式存储的十进制数字来标识。sss
(4)Last-Moidfied
指示资源最后修改日期和时间。
谢谢大家的访问 如果有不对的地方欢迎私信指正!!