终于知道为啥别人写博客都这么好看了,原来CSDN的博客使用html排的板子 以前我不会用 现在我会用嘞!
HTTP学习
HTTP概念
HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
一个HTTP”客户端”是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。
一个HTTP”服务器”同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
一旦建立连接后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送。链接地址
————来源于菜鸟教程的定义
服务器响应与客户端请求
之前做抓包的时候,有些不明所以,开了数据包截获,结果发现网连不上了,然后各种百度搜,说到底还是自己基础知识比较薄弱。后来看着burpsuit算是看出了点门道来。
客户端请求有着:请求行,请求头部,空行和请求参数。
HTTP的响应由四个部分组成,分别是:状态行,消息头,空行,相应正文。
在网上搜索了一个html的语法,就拿这个来做例子。
————我们可以拿burpsuite里抓的包为例
这个是request(省略正文)
GET /success.txt HTTP/1.1
Host: detectportal.firefox.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Pragma: no-cache
Connection: close
这个是response(省略正文)
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 8
Last-Modified: Mon, 15 May 2017 18:04:40 GMT
ETag: "ae780585f49b94ce1444eb7d28906123"
Accept-Ranges: bytes
Server: AmazonS3
X-Amz-Cf-Id: poOnu7JQEOSZLPBYOkRisVAFh90SUj5TUTQMcr9DEWLzL8isd-hcJg==
Cache-Control: no-cache, no-store, must-revalidate
Date: Mon, 08 Jan 2018 04:03:29 GMT
Connection: close
request不是挺全的,因为我没有在页面中输入什么东西。如果有输入的话,应该有一行是post的,然后你可以改输入然后做很多坏事情对吧?这里写一个表单,来列举一下请求的方法。
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
相应头信息emmm,这个里面东西很多,大概就列举点重要的吧。
1 | ALLOW | 支持的请求方法。(限制你改包的思维吧,少年!) |
2 | Content-Encoding | 编码方法 |
3 | Content-Length | 表示内容长度,持久连接才有用。这类题我还没接触到.avi |
4 | DATE | 日期 |
? | 未完待续 |
HTTP状态码
————可以通过F12查看Status查看状态码
常见的HTTP状态码
- 100 继续
- 200 请求成功
- 301 网页被转移到其他url
- 404请求资源不存在(404见多了2333)
- 500 服务器内部错误