4.1 http请求

http请求是一种从客户端到服务端的一次数据提交,服务端有时候需要进行应答,应答的方式可能是一个字符串、一个文件,甚至可以没有应答。
我们平时点击网页的链接,从地址栏输入网址然后访问,就是一次http请求,它请求的是一个html文件,服务器把html文件作为应答,然后我们就能访问另一个页面。我们在浏览器地址栏上可以看到http或者https开头的地址,这就是指一次http请求。以下行为都是一次http请求:
1.用户登录。客户端把用户名和密码等信息发送到服务端,服务端判断用户名和密码是否正确返回是否登录成功的信息
2.提交表单。所谓表单就是包含用户输入信息的表,例如单选、多选、文本输入,下拉框、文件上传等等,客户端这些数据都要发送到服务端,等待服务端处理。
3.资源下载。客户端没有附加任何信息,只根据地址发起请求。
4.页面跳转。和资源下载类似,但这时候请求的文件是一个html文件,效果就是打开另一个页面。
以上是传统的浏览器的http请求,我们可以在浏览器的地址栏看到整个请求,有些还可以直接分享出来,下面的行为属于移动端,大部分也是http请求:
1.小程序所有数据请求。小程序实际上是网页的变种,小程序的登录、点击行为,大部分都是http请求
2.微信公众号的菜单点击。
3.大部分app的一些请求。例如京东、淘宝这些,打开页面,都是HTTP请求。

get请求
http请求可以附加参数,例如下面的一个http地址
https://www.codessp.cn/#/study?code=020200&courseId=31
问号后面的就是这个请求附加的参数
这里一共有3个参数,按照"名=值"这样的格式发送,以&符号隔开,这种把参数直接附加到URL地址后面的数据发送方式,称为get方式请求。
这种方式发送数据简单,可共享,随便发给另一个人打开也是同一个页面。

post请求
但是有些请求的附加参数,是不能直接连到url后面的,例如登录的时候如果这么做,用户名和密码就很容易泄露。或者要发送的数据过多(URL的长度有限制)、过大(例如发送一个文件)。
post请求的URL是没有参数附在后面的,于是就不能共享给别人。
如果没有特别指定,那么缺省的数据发送方式就是get,在html的form标签中,就包含了这个参数:
<form method="post" action="vLogin.jsp">
账号
<input type="text" class="inputText" name="username" width="120px"><br/>
密码
<input type="password" class="inputText" name="password" width="120px"><br/>
<input value="登陆" type="submit" class="submit"></form>
第一行代码的method就是指定post还是get,action指定的是服务端的地址,也就是数据的目的地。form里面的submit按钮的默认行为就是提交数据。

而在前端开发里,所有的http请求都不再通过内置的form。