HTTP协议

了解 HTTP协议

明确两个问题:
什么是协议?协议就是双方在交互、通讯的时候, 遵守的一种规范、规则。
什么是http协议?客户端与服务器端在执行http请求的时候,遵守的一种规范。规范规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。客户端发送给服务器的称为"请求报文",服务器发送给客户端的称为"响应报文"。

客户端与服务端通信时传输的内容我们称之为报文。报文实质也是数据

客户端与服务器如何通讯

在浏览器地址栏上输入一个网址,浏览器就能显示出一些画面来,说明此时浏览器和服务器进行了通讯,传输了数据。

我们通过浏览器的开发者工具可以查看到http的请求数据与响应数据

1.为了方便查看,首先启动Tomcat,通过浏览器进入

http://localhost:8080/examples/servlets/servlet/RequestParamExample


2.填写参数,打开开发者工具,选择Network,提交数据

3.提交数据后,点击RequestParamExample,就可以查看到请求数据与响应数据

通过tomcat的这个示例,查看浏览器和 tomcat服务器的对接细节

<mark>Http请求数据简略分析</mark>

请求的数据里面包含三个部分内容 : 请求行 、 请求头 、请求体

通过上面的示例得到的请求数据

  • 请求行
POST /examples/servlets/servlet/RequestParamExample HTTP/1.1

POST : 请求方式 ,以post去提交数据
examples/servlets/servlet/RequestParamExample:请求的地址路径 , 就是要访问哪个地方。
HTTP/1.1 协议版本

  • 请求头
Host: localhost:8080
Connection: keep-alive
Content-Length: 22
Cache-Control: max-age=0
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:8080/examples/servlets/servlet/RequestParamExample
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

Host:主机地址
Connection:Keep-Alive 保持连接
Content-Length: 数据长度
Cache-Control: 对缓存的操作
Origin:
Upgrade-Insecure-Requests:
Content-Type:提交的数据类型。经过urlencoding编码的form表单的数据
User-Agent:向服务器表明,当前来访的客户端信息。
Accept: 客户端向服务器端表示,我能支持什么类型的数据。
Referer:真正请求的地址路径,全路径
Accept-Encoding: gzip, deflate : 压缩算法 。
Accept-Language: 支持语言格式

  • 请求体
 firstname=Z&lastname=Y

浏览器真正发送给服务器的数据,发送的数据呈现的是key=value ,如果存在多个数据,那么使用 &

<mark>Http响应数据简略分析</mark>

服务器响应的数据里面包含三个部分内容 : 响应行 、 响应头 、响应体

通过上面的示例得到的响应数据

  • 响应行
HTTP/1.1 200

HTTP/1.1:协议版本
200:状态码;一般会有OK(或其他):对应前面的状态码

状态码 响应结果说明
200 请求成功
302 重定向,服务器会发送一个响应头Location,它指定了新请求的URL地址
404 请求的资源没有找到,说明客户端请求的资源在服务器不存在
500 请求资源找到了,但服务器内部出现错误
  • 响应头
Content-Type: text/html;charset=UTF-8
Content-Length: 671
Date: Fri, 17 Jan 2020 09:16:50 GMT
Keep-Alive: timeout=20
Connection: keep-alive

Content-Type : 服务器返回给客户端的内容类型
Content-Length : 返回的数据长度
Date : 通讯的日期,响应的时间
Keep-Alive:
Connection:keep-alive 保持连接

  • 响应体
    显示在浏览器的页面,一般是html

<mark>Get 和 Post请求区别</mark>

以上示例是PSOT请求方式

  • post请求

1.数据是以流的方式写过去,不会在地址栏上面显示。 现在一般提交数据到服务器使用的都是POST请求
2.以流的方式写数据,数据没有大小限制。

  • get请求

1.会在地址栏后面拼接数据,有安全隐患。 一般从服务器获取数据,并且客户端也不用提交数据的时候,可以使用GET请求
2. 能够带的数据有限, 1kb大小

全部评论

相关推荐

最近群里有很多同学找我看简历,问问题,主要就是集中在明年三月份的暑期,我暑期还能进大厂嘛?我接下来该怎么做?对于我来说,我对于双非找实习的一个暴论就是title永远大于业务,你在大厂随随便便做点慢SQL治理加个索引,可能就能影响几千人,在小厂你从零到一搭建的系统可能只有几十个人在使用,量级是不一样的。对双非来说,最难的就是约面,怎么才能被大厂约面试?首先这需要一点运气,另外你也需要好的实习带给你的背书。有很多双非的同学在一些外包小厂待了四五个月,这样的产出有什么用呢?工厂的可视化大屏业务很广泛?产出无疑是重要的,但是得当你的实习公司到了一定的档次之后,比如你想走后端,那么中厂后端和大厂测开的选择,你可以选择中厂后端(注意,这里的中厂也得是一些人都知道的,比如哈啰,得物,b站之类,不是说人数超过500就叫中厂),只有这个时候你再去好好关注你的产出,要不就无脑大厂就完了。很多双非同学的误区就在这里,找到一份实习之后,就认为自己达到了阶段性的任务,根本不再投递简历,也不再提升自己,玩了几个月之后,美其名曰沉淀产出,真正的好产出能有多少呢?而实际上双非同学的第一份实习大部分都是工厂外包和政府外包!根本无产出可写😡😡😡!到了最后才发现晚了,所以对双非同学来说,不要放过任何一个从小到中,从中到大的机会,你得先有好的平台与title之后再考虑你的产出!因为那样你才将将能过了HR初筛!我认识一个双非同学,从浪潮到海康,每一段都呆不久,因为他在不断的投递和提升自己,最后去了美团,这才是双非应该做的,而我相信大部分的双非同学,在找到浪潮的那一刻就再也不会看八股,写算法,也不会打开ssob了,这才是你跟别人的差距。
迷茫的大四🐶:我也这样认为,title永远第一,只有名气大,才有人愿意了解你的简历
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务