在做网络编程的时候,我们必不可少的会接触到网络请求和回复,这些知识也是通往更加复杂知识网络体系的基石,所以很多大厂的面试也会问到这些基础知识,今天我们用五分钟时间来快速过一下,希望大家能够牢牢掌握住。
request
request,网络请求,字面意思来理解也就是,通过http向服务端发送一个消息,请求服务端回复的过程。
服务端收到这个请求消息后,可以解析这些消息的内容,作出相应的处理,然后把请求的内容,或者错误信息返回给发送端。
举个栗子,我们要百度一下关键词“编程镇魔司”,那么当我们在百度搜索框里输入“编程镇魔司”,然后点击搜索按钮后,浏览器就会发送一个http请求给百度的server端,server接到请求后会对关键词“编程镇魔司”的搜索结果进行整理和编码,然后把结果返回给浏览器,呈现出了的就是搜索的结果。
过程相信大家都理解了,那么request的内容究竟是什么样的呢,我们来解析一下。
请求方式
一个http请求有多种请求方式,常用的主要有GET/POST两种。
区别主要在于请求的数据存放的位置不同,GET是把请求数据放在请求的url中,而POST则是把数据放在了header字段中。
GET主要用于资源获取并展示,比如我们请求一个网页,那么使用get就ok,但是如果我们需要登录一个网站,发送一个登录请求,那么我们需要把账号和密码通过POST方法,提交给后台服务器校验,那么这时POST就更加方便了。
请求内容
请求的内容包括以下几个字段。
- URL
- 请求头
- 请求体
URL,统一资源定位符,这个我们常用到,通常我们称之为网址,想要发送一个网络请求,必然要知道要向谁请求,所以这个URL必不可少。
请求头,里面包含了request的头部信息,比如User-Agent,Host,Cookies等等信息,打开浏览器,按F12,可以看到请求头的信息,我们看下图。
请求体,有了头部信息了,自然就需要有内容,请求体承载了请求的详细信息,比如提交给服务器的账号密码等信息。