树莓派——http协议相关概念

一、HTTP协议

1、特性

        http协议是建立在TCP/IP协议之上应用层协议,默认端口为80,8080

 2、http协议的请求

        有两种请求GET请求/POST请求

        http协议的报文传输的是ASCII码,在TCP/IP协议之上,主要主要分为三部分请求行、请求头、请求体

请求行(可以看出是哪种请求方式)

GET请求

 GET /books/?sex=man&name=Professional HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Connection: Keep-Alive

POST请求

 POST / HTTP/1.1
 Host: www.example.com
 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
 Gecko/20050225 Firefox/1.0.1
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 40
 Connection: Keep-Alive

 sex=man&name=Professional 

区别:

1、url可见性:

        get,参数url可见;

        post,url参数不可见 

2、数据传输上:

        get,通过拼接url进行传递参数;

        post,通过body体传输参数

3、缓存性:

        get请求是可以缓存的

        post请求不可以缓存

4、后退页面的反应

        get请求页面后退时,不产生影响

        post请求页面后退时,会重新提交请求

5、传输数据的大小

        get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)

        post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

6、安全性

        这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

本质区别:

        GET产生一个TCP数据包;POST产生两个TCP数据包。

        对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

        而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

请求头

浏览器向服务器发送一些状态数据,标识数据等等

一个信息一行,包括信息名:信息值 按行分隔

User-Agent: firefox//表示发送请求的浏览器(请求代理端)是firefox
Host: shop.100.com//表示请求的主机域名(基于域名的虚拟主机就是靠这个头判断的)
Cookie:name=itcast//浏览器携带的cookie数据。
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive

请求主体

请求代理端项服务器端,发送的请求数据!

典型的就是POST形式发送的表单数据!

get请求,没有请求主体部分!get数据是在请求行中的url上进行传递的!

3、http协议的响应

        响应行、响应头、响应主体

HTTP/1.1 200 0K
Date: Tue,19 Nov 2013 03:08:55 GMT
Server: Apache/2. 2.22 (Win32) PHP/5.3. 13
X- -Powered -By: PHP/5. 3.13
Content-Length: 16
Content- Type: text/html

响应行

响应行包括:协议版本、状态码、状态消息

典型的:

1xx:消息

2xx:成功

3xx:请求被重定向

4xx:浏览器端错误

5xx:服务器端错误

典型:

500 服务器内部错误

404 请求的页面没有找到

403 没有权限

200 请求成功

响应头

Content-Type: text/html 内容类型,告知浏览器接下来发送的响应主体数据是什么格式!

Content-Length: 响应主体数据的长度!

Date: 响应的时间。GMT时间!

响应主体

主要的响应数据,在浏览器的主体区域显示的数据都是相应主体!

注意,每行,包括相应行和响应头,都需要一个 \r\n结尾

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值