什么是HTTP请求和响应?(面试题)

HTTP是Hypertext Transfer Protocol的缩写,意思是超文本传输协议,它是一种客户端和服务端之间的请求-响应协议,比如说浏览器就可以被看作客户端,当我们在浏览器地址栏输入想访问的网址,按下回车后,浏览器就会向运行该网站的服务器发送一个请求,然后等待服务器返回给浏览器响应,HTTP实际上有不同的请求方法,最常见的两种是get和post,get主要用于获得数据,post主要用于创建数据,比如说我们进入一个网页,浏览器会发送get请求,得到网页内容,当我们提交账号注册表单时,浏览器会发送post请求,把你的用户名、密码等信息放到请求主体里,给到服务器,由于爬虫程序基本上是在获得数据,所以我们发送的请求大部分情况下用get方法,除了方法类型,一个完整的HTTP请求由三部分组成,分别是是请求行、请求头和请求体。请求行会包含方法类型、资源路径和协议版本,资源路径指明了你要访问服务器的哪个资源,请求行里的最后一项是协议版本,指的是HTTP协议的版本,比如HTTP/1.0、HTTP/1.1等,请求头会包含一些给服务器的信息,比如host user-agent 、accept等等。Host指主机域名,主机域名结合请求行里的资源路径,可以得到一个完整的网址,斜杠前这部分是域名,斜杠后面的是路径,问号后面的是查询参数,user-agent是用来告知服务器客户端的相关信息,比如请求是浏览器发出来的,还是其他东西发出来的,如果浏览器的话类型是什么?版本是什么?等等。Accept是在告诉服务器,客户端想接收的响应数据是什么类型的,接受多种类型的话可以用逗号进行分隔,如果是*/*,表示什么类型都行,而请求体里面可以放,客户端可以放传给服务器的其他任意数据,但是get方法的请求体一般是空的,在服务器接收HTTP请求后,它会根据所有的这些信息,返回HTTP响应。响应由三个部分组成,状态行、响应头、响应体。状态行包含了协议版本、状态码、状态信息。状态码和状态消息是对应的,2开头的表示请求已经完成处理,3开头的表示重定向,需要进一步的操作,4开头的表示客户端错误,比如请求里面有错误或请求的资源无效等等,5开头的表示服务器错误,比如出现问题或正在维护,我们在不小心输入一个错误的网址后,一般会来到一个展示404的页面,这个404就是HTTP状态码,响应头会包含一些告知客户端的信息,比如date(生成响应的日期和时间)、content-type(返回内容的类型及编码格式)、比如text/html;chartset=utf-8,说明类型是html,编码是utf-8,而响应体里面就是服务器想给客户端的数据内容,比如前面说内容类型是html,这里应该就是html内容。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值