http的学习
昨天看了mj老师关于http中请求头中参数的讲解,收获了很多,特此整理成笔记记录,方便以后的复习.
请求头部分字段
头字段名 | 说明 | 示例 |
---|---|---|
Accept | 服务器能够接受的响应文件类型 | Accept:text/html |
Accept-Charset | 服务器能够接受的字符集 | Accept-Charset:GB2312,utf-8:q=0.9,*:q=.0.7 |
Accept-Encoding | 服务器能够接受的编码方式 | Accept-Encoding: gzip, deflate |
Accept-Language | 服务器能够接受的语言列表 | Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 |
cookie | 之前由服务器通过set-cookie发送的cokkie | security=medium; security_level=0; PHPSESSID=cr1e09stcvf5a2ndbi4skmcde1 |
请求包格式讲解:
请求行:方法名 对应的url http版本 当然可以通过wireshark抓包查看最原始的请求行.
版本号 url http版本
1 | GET /busuanzi?jsonpCallback=BusuanziCallback_816608165920 HTTP/1.1 |

请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息.
示例
1 | User-Agent:产生请求的浏览器类型。 |
最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
请求实体:get请求中不存在请求实体,post请求中请求实体往往保存请求的参数相关内容
优先级讲解:
各字段以逗号隔开,每个字段名的值可以有不同类型,实例中p,q参数的值代表优先级(权值),默认为1,值越大优先级越高.例如Accept-Charset:GB2312,utf-8:q=0.9,*:q=.0.7表示GB2312和utf-8的字符优先级为0.9,**代表除了特意指明字符以外的字符集优先级为0.7,通俗的意思就是讲客户端希望优先接收到Charset:GB2312,utf-8的字符集,当然服务器可能会不支持这两种字符,因此会在后面默认这两种字符外的其他字符的优先级.
状态码分类
1 | 1xx 信息,服务器收到请求,需要请求者继续执行操作 |
form表单的两种提交方式
①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,这里只介绍常用的两种方法
get请求:
参数直接跟在url后面,请求包中并没有请求实体,直接从指定的资源请求数据
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被收藏为书签
- GET 请求不应在处理敏感数据时使用
- GET 请求有长度限制
- GET 请求只应当用于取回数据
1 | GET /service/msn/user?apikey=0QfOX3Vn51YCzitbLaRkTTBadtWpgTN8NZLW0C1SEM&activityId=B827D662-6422-42D6-9141-4FF4DF2AE8C0 //参数直接附在url后面直接请求资源. |
POST 请求
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
1 | POST /01/vulnerabilities/sqli/ HTTP/1.1 |
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
enctype:POST请求时,请求体的编码方式
通常附在form表单中,默认为application/x-www-form-urlencoded编码,文件类型不支持该编码方式,当用此编码方式时会拒绝接受文件内容
1
<form action="/cs/login" method="post" enctype="application/x-www-form-urlencoded">
application/x-www-form-urlencoded:请求的参数用&分隔,用=分隔键和值,字符用URL编码方式进行编码
1
id=2&Submit=Submit
multipart/form-data:支持接受文件类型,文件上传必须使用这种编码方式
1 | <form action="/cs/login" method="post" enctype="multipart/form-data"> |
