对http的理解

在进行爬虫的时候接触到了http,简单说一下对它的理解。

HTTP协议简介

HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)

1…协议
协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

2.无状态
无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。

3.客户端/服务端模型
客户端/服务端模型

五层网络模型

在这里插入图片描述

URL构成

在这里插入图片描述

协议内容

1.请求(Request)
客户端发送一个HTTP请求到服务端的格式:

请求行

请求头

请求体

2.响应(Response)
服务端响应客户端格式:

状态行

响应头

响应体
3.状态码
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。

HTTP状态码共分为5种类型:

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

更详细的状态码可查看 HTTP状态码

但一般我们只需要知道几个常见的就行,比如 200,400,401,403,404,500,502.

请求方法:

方法描述
GETGET请求会显示请求指定的资源。一般来说GET方法应该只用于数s据的读取,而不应当用于会产生副作用的非幂等的操作中。它期望的应该是而且应该是安全的和幂等的。这里的安全指的是,请求不会影响到资源的状态。
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

(其他方法详细见网上)

请求和响应常见通用头

名称作用
Content-Type请求体/响应体的类型,如:text/plain、application/json
Accept说明接收的类型,可以多个值,用,(半角逗号)分开
Content-Length请求体/响应体的长度,单位字节
Content-Encoding请求体/响应体的编码格式,如gzip,deflate
Accept-Encoding告知对方我方接受的Content-Encoding
ETag给当前资源的标识,和Last-Modified、If-None-Match、If-Modified-Since配合,用于缓存控制
Cache-Control取值为一般为no-cache或max-age=XX,XX为个整数,表示该资源缓存有效期

注意:Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。

详细说明一下cookies

Cookie的作用:

Cookie是用于维持服务端会话状态的,通常由服务端写入,在后续请求中,供服务端读取。

一、HTTP请求,Cookie的使用过程:

1、server通过HTTP Response中的"Set-Cookie: header"把cookie发送给client

2、client把cookie通过HTTP Request 中的“Cookie: header”发送给server

3、每次HTTP请求,Cookie都会被发送。

二、http请求发送cookies的条件:

1、本地已经缓存有cookies

2、根据请求的URL来匹配cookies的domain、path属性,如果都符合才会发送。

举个例子:访问www.baidu.com时,就不发送www.qq.com的cookies.

三、cookies查看:

大家可以使用抓包工具,这种工具就不多话,网上搜索出很多。使用这些工具中可以清晰的看到Http Request 中的Cookie, 和Http Response中的cookie

四、网站的登陆与App的自动登陆原理:

用户在连接服务器时,服务器生成一个唯一的SessionID 。而SessionID这一数据则是保存到客户端,

用Cookie保存的,用户提交页面时,会将 SessionID提交到服务器端,来存取Session数据。

Cookie cookie = new Cookie(“mycookie”+cookieNo, String.valueOf(cookieNo));

两个String串组成cookies。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖色的杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值