HTTP协议 学习笔记

时间:2023-02-26 12:35:47


终于知道为啥别人写博客都这么好看了,原来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 服务器内部错误
也就是说1代表着信息,继续操作的意思。2代表着成功接收并处理。3代表重新定向,需要进一步操作。4代表着客户端错误,request有问题。5代表着服务器处理过程中的问题。