HTTP学习笔记

一、HTTP请求

请求中包含的内容

一个请求行,若干个消息头(请求头),空格,数据部分。

HTTP请求的种类

GET,POST,HEAD等等。

GET请求分析

请求行

首先是请求行,请求行有三部分,用空格隔开,最前面的是请求方式,中间的是请求资源,最后是版本号。

讲讲中间的部分,如下:

GET /test?username=11&phone=11111111111111 HTTP/1.1

中间test是浏览器的请求,来源如下,这是一个表单提交。GET提交的特点就是数据部分会在浏览器的URL中显示,不安全而且提交长度有限制。

<form method="get" action="http://192.168.1.222/test">

"?"后面的是提交的数据部分,是一个键值对,不同键值对用&隔开。

请求头

我只讲一个地方,就是User-Agent

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

有些应用想要访问web服务器网站,这个User-Agent不对,导致服务器不搭理,正确做法就是伪装成浏览器,也就是把User-Agent后面改成跟普通浏览器一样即可。

POST请求分析

请求行

跟GET请求相比,中间没了数据部分。

POST /test HTTP/1.1

请求头

我也只讲一个地方就是Content-TypeContent-Type里面有post提交的方式,一共有四种。

Content-Type: application/x-www-form-urlencoded

数据部分

与GET相比较,POST数据部分是有数据的,如:

username=11&phone=11111111111111

POST提交的四种方式

表单提交

请求头部分包含

Content-Type: application/x-www-form-urlencoded;

数据部分

username=11&phone=11111111111111

JSON提交

请求头部分包含

Content-Type: application/json;

数据部分

{"title":"test","sub":[1,2,3]}

XML提交

请求头部分包含

Content-Type: text/xml

数据部分

<!--?xml version="1.0"?-->
<methodcall>
	<methodname>examples.getStateName</methodname>
		        <params>
			<value><i4>41</i4></value>
		        </params>
</methodcall>

文件提交

请求头部分包含

Content-Type: multipart/form-data;

数据部分

-----------------------------7e333a181a0a4e
Content-Disposition: form-data; name="file"; filename="aa.txt"
Content-Type: text/plain

åèå½æ°ï¼ååå½æ°ï¼èå½æ°
PCBï¼çº¢é»æ ï¼epollï¼kpmï¼å®å¨èåï¼sshï¼Docker
cpå¤å¶æ件夹
mvdir
äºå¡é离
åå­ç®¡ç


-----------------------------7e333a181a0a4e--

二、HTTP响应

HTTP响应包含的内容

一个状态行,若干个消息头,以及数据部分

HTTP响应内容分析

状态行

状态行分为三部分,HTTP版本(HTTP/1.1)、状态码(200)以及消息“OK”。

HTTP/1.1 200 OK

五种状态码:

1xx:信息提示,表示请求已被成功接收,继续处理。
2xx:请求被成功提交。
3xx:客户端被重定向到其他资源。
4xx:客户端错误状态码,格式错误或者不存在资源。
5xx:描述服务器内部错误。

数据部分

数据部分返回服务器给的html网页。

<!DOCTYPE html>
<html>
	<head>aa
	</head>
	<body>aa
	</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值