推广

URI和URL简介

iseeyu2年前 (2024-10-20)推广104

HTTP和HTTPS

HTTP:超文本传输协议。

作用是把超文本从网络传输到本地浏览器,能够保证高效而准确地传输超文本文档。

HTTPS:是以安全为目标的HTTP通道,简单讲就是HTTP的安全版,在HTTP下加入SSL层,简称HTTPS。

HTTPS的安全基础是SSL,因此通过该协议传输的都是结果SSL加密的。

SSL主要作用有以下两种:

  • 建立一个信息安全通道,保证数据传输的安全。
  • 确认网站的安全性。凡是使用了HTTPS协议的网站,都可以通过浏览器地址栏的锁头标志来查看网站认证之后的真实信息。此外还可以通过CA机构颁发的安全签章来查询。

3. HTTP请求过程




1.对www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址

2.根据这个IP,找到对应的服务器,发起TCP的三次握手

3.建立TCP连接后发起HTTP请求

4.服务器响应HTTP请求,浏览器得到html代码

5.浏览器解析html代码,并请求html代码中的资源(如js、css图片等)(先得到html代码,才能去找这些资源)

6.浏览器对页面进行渲染呈现给用户

访问百度,快捷键F12,打开浏览器的开发者工具(没有则使用F5进行刷新):




各列含义:

第一列 Name:请求的名称。一般会用URL的最后一部分内容作为名称。

第二列 Status:响应的状态码。这里显示为200,表达响应是正常的。通过状态码,我们可以判断发送请求之后是否得到正常的响应。

第三列 Type:请求的文档类型。这里为document,代表我们这次请求的是一个HTML文档,内容是一些HTML代码。

第四列 Initiator:请求源。用来标记请求是由哪个对象或进程发起的。

第五列 Size:从服务器下载的文件或请求的资源大小,如果资源是从缓存中取得的,则该列会显示from cache。

第六列 Time:从发起请求的到获取响应所花的总时间。

第七列 Waterfall:网络请求的可视化瀑布流。

单击第一列Name的第一行www.baidu.com,可得到更详细的信息:




General部分:

Request URL:为请求的URL

Request Method:为请求的方法

Status Code:为响应状态码

Remote Addres:远程服务器的地址和端口

Referrer Policy:为Referrer判别策略

Response Headers:响应头

包含服务器的类型、文档类型、日期等信息,浏览器在接收到响应后,会对其进行解析,进而呈现网页的内容。

Request Headers:请求头

包含请求信息,如浏览器标识,Cookie、Host等信息。服务器会根据请求头的信息判断请求是否合法,进而做出对应的响应。

4. 请求

请求,英文名为Request

由客户端发往服务器,分为四个部分:

  • 请求方法(Request Method)
  • 请求的网址(Request URL)
  • 请求头(Request Headers)
  • 请求体(Request Body)

请求方法:

请求方法,用于标识请求客户端请求服务端的方式,常见的请求方式有两种:GET和POST。

  • GET请求 示例:百度搜索Python就是一个GET请求,链接为https://www.baidu.com/s?wd=Python,其中URL中包含了请求的query信息,这里的参数wd表示要搜寻的关键字。
  • POST请求 示例:POST请求大多在提交表单时发起。例如,对于一个登录表单,输入用户名和密码后,单击“登录”按钮,这时通常会发起一个POST请求,其数据通常以表单的形式传输,而不会体现在URL中。

GET和POST请求方法的区别:

  • GET请求中的参数包含在URL里面,数据可以在URL中看到;而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
  • GET请求提交的数据最多只有1024字节,POST则没有限制。

登录时一般需要用户名和密码,其中密码是敏感信息,如果使用GET请求,则会暴露在URL里面,所以这时候使用POST方式发送。

上传文件时,由于文件内容比较大,因此也可以使用POST方式。

其它请求方法:

方法

描述

GET

请求网页,并返回页面内容

POST

大多用于提交表单或上传文件,数据包含在请求体中

HEAD

类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头

PUT

用客户端传向服务器的数据取代指定文档中的内容

DELETE

请求服务器删除指定的网页

CONNECT

把服务器当作跳板,让服务器代替客户端访问其他网页

OPTIONS

允许客户端查看服务器的性能

TRACE

回显服务器收到的请求。主要用于测试或诊断

请求网址:

请求的网址,它可以唯一确定客户端想请求的资源。

请求头:

请求头,用于说明服务器要使用的附加信息,比较重要的信息要Cookit,Referer,User-Agent等。

常用请求头信息:

  • Accept:请求报头域,用于指定客户端可接收哪些类型的信息。
  • Accept-Language:用于指定客户端可接收的语言类型。
  • Accept-Encoding:用于指定客户端可接收的内容编码。
  • Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。
  • Cookit:常用复数形式Cookies,这是网站为了辨别用户,进行会话跟踪而存储在用户本地的数据。它主要功能是维持当前访问会话。
  • Referer:用于标识请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理等。
  • User-Agent:简称UA,这是一个特殊的字符串头,可以使服务器识别客户端使用的系统及版本、浏览器及版本等信息。做爬虫时如果加上此信息,可以伪装为浏览器;如果不加,可能会被识别出来。
  • Content-Type:也叫互联网媒体类型或者MIME类型,在HTTP协议消息头中,它用来表示请求中的媒体类型信息。例如:test/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型。

请求头是请求的主要组成部分,在写爬虫时,通常都需要设定请求头。

请求体:

请求体,一般承载的内容是POST请求中的表单数据,对于GET请求,请求体为空。

例如,登录Github时捕获到的请求和响应

登录之前需先填写用户名和密码信息,登录是会以表单数据的形式提交给服务器,此时需要注意的是Request Headers中指定Content-Type设置为application/json来提交JSON数据,或者设置为multipart/form-data来上传文件。

Content-Type和POST提交数据方式的关系:

Content-Type

提交数据的方式

application/x-www-form-urlencoded

表单数据

multipart/form-data

表单文件上传

application/json

序列化JSON数据

text/xml

XML数据

在爬虫中,构造POST请求需要使用正确的Content-Type,并了解设置各种请求库的各个参数时使用的都是哪种,如若不然可能导致POST提交后无法得到正常的响应。

5. 响应

响应,即Response,有服务器返回客户端,可以分为三个部分:

响应状态码、响应头、响应体

  • 响应状态码响应状态码,表示服务器的响应状态,如200,代码服务器表示正常响应

常见的错误状态码及错误原因:

状态码

说明

详情

100

Continue

继续。客户端应继续其请求

101

Switching Protocols

切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议

200

OK

请求成功。一般用于GET与POST请求

201

Created

已创建。成功请求并创建了新的资源

202

Accepted

已接受。已经接受请求,但未处理完成

203

Non-Authoritative Information

非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本

204

No Content

无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档

205

Reset Content

重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域

206

Partial Content

部分内容。服务器成功处理了部分GET请求

300

Multiple Choices

多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择

301

Moved Permanently

永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替

302

Found

临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

303

See Other

查看其它地址。与301类似。使用GET和POST请求查看

304

Not Modified

未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源

305

Use Proxy

使用代理。所请求的资源必须通过代理访问

306

Unused

已经被废弃的HTTP状态码

307

Temporary Redirect

临时重定向。与302类似。使用GET请求重定向

400

Bad Request

客户端请求的语法错误,服务器无法理解

401

Unauthorized

请求要求用户的身份认证

402

Payment Required

保留,将来使用

403

Forbidden

服务器理解请求客户端的请求,但是拒绝执行此请求

404

Not Found

服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

405

Method Not Allowed

客户端请求中的方法被禁止

406

Not Acceptable

服务器无法根据客户端请求的内容特性完成请求

407

Proxy Authentication Required

请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

408

Request Time-out

服务器等待客户端发送的请求时间过长,超时

409

Conflict

服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突

410

Gone

客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

411

Length Required

服务器无法处理客户端发送的不带Content-Length的请求信息

412

Precondition Failed

客户端请求信息的先决条件错误

413

Request Entity Too Large

由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

414

Request-URI Too Large

请求的URI过长(URI通常为网址),服务器无法处理

415

Unsupported Media Type

服务器无法处理请求附带的媒体格式

416

Requested range not satisfiable

客户端请求的范围无效

417

Expectation Failed

服务器无法满足Expect的请求头信息

500

Internal Server Error

服务器内部错误,无法完成请求

501

Not Implemented

服务器不支持请求的功能,无法完成请求

502

Bad Gateway

作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应

503

Service Unavailable

由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理

  • 响应头响应头,包含服务器对请求的应答信息,如Conntent-Type,Server,Set-Cookit等。

常用响应头信息:

应答头

说明

Date

当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。

Last-Modified

文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。Last-Modified也可用setDateHeader方法来设置。

Content-Type

表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。

Server

服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。

Content-Type

表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。

Set-Cookie

设置和页面关联的Cookie。Servlet不应使用response.setHeader("Set-Cookie", ...),而是应使用HttpServletResponse提供的专用方法addCookie。参见下文有关Cookie设置的讨论。

Expires

应该在什么时候认为文档已经过期,从而不再缓存它?

响应体:

响应的正文数据都存在于响应体中,爬虫请求网页时,要解析的内容就是响应体。

6. HTTP 2.0

通过支持完整的请求与响应复用来减少延迟,并通过有效压缩HTTP请求头字段的方式将协议开销降至最低,同时之家对请求优先级和服务其推送的支持。

  • 二进程分帧层HTTP 2.0将文本格式修改成二进制格式,使得解析更高效。同时将请求和响应数据切割为更小的帧,并采用二进制编码。
  • 多路复用HTTP 2.0不再以TCP连接的方式实现多路并行,客户端和服务器可以将HTTP消息分解为互不依赖的帧,然后交错发送,最后在另一端呈现组装起来。
  • 控制流控制流是一种阻止发送方向接收方发送大量数据的机制,以免超出后者的需求和处理能力。
  • 服务端推送HTTP 2.0,服务器可以对一个客户端请求发送多个响应。可以发送额外资源,无须客户端明确的请求。如果明确有一些资源是客户度需求的,可以提前发送资源,这样可以减少延迟时间。



扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/143064.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片