您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

HTTP和HTTPS 《源码分享》

  • 时间:2022-11-01 00:09 编辑: 来源: 阅读:327
  • 扫一扫,手机访问
摘要:HTTP和HTTPS 《源码分享》
HTTPSHTTP(超文本传输协议):是一种发布和接收HTTP页面的方法。 HTTPS(安全套接字层上的超文本传输协议)简单来说就是HTTP的安全版本,在HTTP下面增加了SSL层。 SSL(安全套接字层)主要用作网络的安全传输协议。它在传输层对网络连接进行加密,以保证互联网上数据传输的安全性。 HTTP的端口号是80,HTTPS的端口号是443。HTTP是如何工作的?网络爬虫的爬行过程可以理解为模拟浏览器操作的过程。 浏览器的主要功能可以是向服务器发送请求,并在浏览器窗口中显示您选择的网络资源。HTTP是计算机通过网络进行通信的一组规则。 HTTP请求和响应HTTP通信由两部分组成:客户端请求消息和服务器响应消息。浏览器发送HTTP请求的过程:用户在浏览器的地址栏输入一个URL并按回车键后,浏览器会向HTTP服务器发送HTTP请求。 HTTP请求主要分为“Get”和“Post”方法。 当我们在浏览器中输入URL http://www.baidu.com时,浏览器发送一个请求请求来获取http://www.baidu.com的html文件,服务器将响应文件对象发送回浏览器。 对浏览器响应中的HTML进行分析后,发现使用了很多其他文件,如图片文件、CSS文件、JS文件等。 浏览器会自动再次发送请求以获取图片、CSS文件或JS文件。 当所有文件下载成功后,网页将完全按照HTML语法结构显示。 URL(Uniform/Universal Resource Locator的缩写):统一资源定位器(Uniform Resource Locator)是一种用来完整描述互联网上的网页和其他资源的地址的识别方法。 基本格式:scheme://host[:port#]/path/…/[?query-string][# anchor]scheme:protocol(例如:http、https、ftp)host:服务器的IP地址或域名port#:服务器的端口(如果是协议的默认端口,默认端口为80)path:访问资源的路径query-string: parameters,发送到HTTP服务器的数据anchor: anchor(跳转到网页的指定锚位置)例如:FTP://192 . 168 . 0 . 116:8080/index HTTP://www.baidu.com http://item.jd.com/11936238.html # product-detail 客户端发送给服务器的请求消息包括以下格式:请求行、请求头、空行和请求数据。请求消息的一般格式如下图所示。 HTTP请求的典型例子有get https://www.baidu.com/ HTTP/1.1 host:www.baidu.com连接:keep-alive upgrade-insert-requests:1 user-agent:Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/54 . 0 . 2840 . 99 Safari/537.36 accept:text/html,application/xhtml+xml,application/XML;q=0.9,image/webp,*/*;q = 0.8 referer:http://www.baidu.com/Accept-Encoding: gzip,deflate,sdch,brac cept-语言:zh-CN,zh;q=0.8,en;q = 0.6 cookie:BAIDUID = 04e 4001 f 34 ea 74 ad 4601512 DD 3c 41 a 7b:FG = 1;bid dusid = 04e 4001 f 34 ea 74 ad 4601512 DD 3c 41 a 7b;PSTM = 1470329258;MCITY =-343% 3A 340% 3A;BDUSS = nf 0 mvfimtvlcuh-q 2 mxq 0 m3 STZ gquz 4 N2 HBA 1 ffrkizudi 3 qlbczjg 5 cf DOD 1 pzqvfbqufbjcqaaaaaaaaaaaaaaaaaaaaaaaaaaaadplvg 0 gyvlrcyfrg-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah _ PS _ PSS id = 1447 _ 18240 _ 21105 _ 21386 _ 21454 _ 21409 _ 21554;BD _ UPN = 12314753;sug = 3;sug store = 0;原点= 0;bdime = 0;h _ PS _ 645 EC = 7 e 2 ad 3 qhl 181 NSP bfbd 7 pru ce 1 lufzxrcfmwyin 0 e 6 b % 2 bw 8 bbtmkhzbdp 0g;Bdrm = 0请求方法GET https://www.baidu.com/ HTTP/1.1根据HTTP标准,HTTP请求可以由各种请求方法发出。 HTTP 0.9:只有基本的text GET函数可以 HTTP 1.0:完善请求/响应模型,完成协议。定义了三种请求方法:GET、POST和HEAD。 HTTP 1.1:从1.0升级,增加了五种新的请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT。 HTTP 2.0(不流行):请求/响应头的定义基本不变,除了所有头键必须小写,请求行应该独立于键值对:method,:scheme,:host,和:path。 序列号描述了对指定页面信息的1GET请求,并返回实体主体。 2HEAD类似于get request,只是返回的响应中没有具体的内容。用于获取header 3POST向指定资源提交数据以解决请求(如提交表单或上传文件),数据包含在请求体中。 POST请求可能导致新资源的建立和/或现有资源的修改。 4输出从客户端传输到服务器的数据替换指定文档的内容。 5DELETE请求服务器删除指定的页面。 6 6 connect http/1.1协议是为可以将连接更改为管道模式的代理服务器保留的。 7选项允许客户端查看服务器的属性。 8TRACE回显服务器收到的请求,主要用于测试或诊断。 HTTP请求主要分为Get和Post两种方法。Get是从服务器获取数据,POST是向服务器传输数据。GET请求的参数显示在浏览器的网址上。HTTP服务器根据请求中包含的URL中的参数生成响应内容,即GET请求的参数是URL的一部分。 比如:http://www.baidu.com/s? Wd = ChinesePOST请求参数在请求体中,消息长度不限,隐式发送。通常会向HTTP服务器提交大量数据(例如,请求包含许多参数或文件上传操作等。),请求的参数包含在“Content-Type”消息头中,指示消息体的媒体类型和代码。注意:避免通过Get提交表单,这可能会导致安全问题。 例如,在登录表单中使用Get方法会暴露用户在地址栏中输入的用户名和密码。 常用的请求头1。Host(主机和端口号)Host:对应于网址URL中的Web名称和端口号,用于指定所请求资源的Internet主机和端口号,通常属于URL的一部分。 2.Connection(链路类型)Connection:表示客户端发起包含Connection:keep-alive的请求与服务连接类型客户端,HTTP/1.1使用keep-alive作为默认值。 服务器收到请求后:如果服务器支持keep-alive,回复包含Connection:keep-alive的响应,不关闭连接;如果服务器不支持keep-alive,则使用包含Connection:close的响应进行回复,然后关闭连接。 如果客户端收到包含Connection:keep-alive的响应,它将向同一连接发送下一个请求,直到有一方主动关闭该连接。 Keep-alive在很多情况下可以重用连接,减少资源消耗,缩短响应时间。例如,当浏览器需要多个文件(例如一个HTML文件和相关的图形文件)时,不必每次都请求建立连接。 3.Upgrade-insert-requests(更新为https请求)Upgrade-insert-Requests:Upgrade-unsecured-Requests,表示在加载http资源时会自动替换为https请求,这样浏览器就不会再在httpS页面中显示HTTP请求警报。 HTTPS是一个以安全为目标的HTTP通道,所以HTTP请求在HTTPS托管的页面上是不允许的。一旦出现就会被提醒或者报错。 4.User-Agent(浏览器名)User-Agent:是用户浏览器的名称,后面会详细描述。 5.Accept(传输文件类型)Accept:指浏览器或其他客户端可以接受的MIME(多用途互联网邮件扩展)文件类型,服务器可以据此判断并返回合适的文件格式。 示例:Accept: */*:表示可以接收任何东西。 Accept: image/GIF:表示用户希望接受GIF图像格式的资源;Accept: text/html:表示客户端希望接受:text/html文本。 接受:text/html,application/XHTML+XML;q=0.9,image/*;Q=0.8:表示浏览器支持的MIME类型是html文本、xhtml和xml文档,以及所有图像格式资源。 q是权重系数,取值范围为0 =< q ISO8859-1:通常称为Latin-1。 Latin-1包含了书写所有西欧语言不可或缺的附加字符,英文浏览器默认值为ISO-8859-1.gb2312:标准简体中文字符集;UTF-8: Unicode是一种变长字符编码,可以处理多种语言的文本显示问题,从而实现国际化和本地化。 如果请求消息中没有设置该字段,默认情况下可以接受任何字符集。 10.Cookie (Cookie)Cookie:浏览器使用这个属性向服务器发送Cookie。 Cookie是注册在浏览器中的一个小数据体,可以记录与服务器相关的用户信息,也可以用来实现会话功能,后面会详细讨论。 1 11.Content-Type (POST数据类型)content-Type:POST请求中使用的内容类型。 示例:Content-Type = Text/XML;Charset=gb2312:表示请求的消息体包含纯文本XML数据,字符编码为“gb2312” 服务器响应HTTP响应也由状态行、消息头、空行、响应体四部分组成HTTP/1.1 200 ok server:tengine connection:keep-alive date:wed,30 nov 2016 07:58:21 GMT cache-control:no-cache content-type:text/html;charset = UTF-8 keep-Alive:time out = 20 vary:Accept-encoding pragma:no-cacheX-NWS-LOG-UUID:BD 27210 a-24e 5-4740-8f6c-25 DBA fa 9 c 395 content-Length:180945 但出于效率、安全等考虑,服务器会添加相应的响应头信息,如上图所示:1。缓存控制:必须无效、无缓存、私有 这个值告诉客户端服务器不希望客户端缓存资源。下次请求资源时,需要请求新的服务器,不允许从缓存副本中获取资源。 缓存控制是响应报头中非常重要的信息。当客户端请求头包含Cache-Control:max-age=0的请求,明确表示不会缓存服务器资源时,Cache-Control作为响应信息,通常会返回no-cache,意思是“那就不要缓存了。” 当客户端在请求头中不包含Cache-Control时,服务器通常会为不同的资源设置不同的缓存策略。例如,oschina缓存图像资源的策略是cache-control: max-age = 86400,这意味着从当前时间开始,在86400秒内,客户端可以直接从缓存副本中读取资源,而无需请求服务器。 2.这个字段connection: keep-alive响应客户端的connection: keep-alive,告诉客户端服务器的tcp连接也是长连接,客户端可以用这个tcp连接继续发送http请求。 3.Content-Encoding:gzip告诉客户端,服务器发送的资源是用gzip编码的,客户端看到这个信息后要用gzip解码资源。 4.内容类型:文本/html;Charset=UTF-8告诉客户端资源文件的类型和字符编码。客户端通过utf-8对资源进行解码,然后对资源执行html解析。 我们平时看到一些网站乱码,就是服务器没有返回正确的代码。 5.日期:Sun,2016年9月21日06: 18: 21 GMT这是服务器发送资源时的服务器时间,GMT是格林威治标准时间的标准时间。 http协议中的发送时间是GMT,主要处理互联网上不同时区互相请求资源时的时间混淆问题。 6.过期时间:Sun,1 Jan 2000 01: 00: 00 GMT此响应标头也与缓存相关。它告诉客户端可以在此时间之前直接访问缓存副本。显然,这个值会有问题。因为客户端和服务器的时间不一定相同,如果时间不同,就会导致问题。 所以这个响应头不如cache-control:max-age = * response头准确。因为max-age=date中的日期是相对时间,不仅更好理解,而且更准确。 7.Pragma:no-cache等同于Cache-Control。 8.Server: Teengine/1.4.6这是服务器和对应的版本,只是告诉客户端服务器的信息。 9.Transfer-encoding: Chunked这个响应头告诉客户机服务器以块的形式发送资源。 一般分块发送的资源是服务器动态生成的,发送时不知道发送资源的大小,所以分块发送。每个块都是独立的,每个独立的块都可以标记自己的长度,最后一个块是0长度。当客户端读取这个0长度的块时,可以确定资源已经被传输。 10.Vary: Accept-Encoding告诉缓存服务器缓存压缩文件和未压缩文件。现在这个字段用的不多了,因为现在所有浏览器都支持压缩。 响应状态代码响应状态代码由三位数字组成。第一个数字定义响应的类型,有五个可能的值。 常见状态码:100~199:表示服务器成功接收到一些请求,需要用户继续提交其他请求才能完成整个求解过程。 200~299:表示服务器成功接收请求,完成整个求解过程。 始终使用200(OK请求成功) 300~399:为了完成请求,用户需要进一步细化请求。 例如,所请求的资源已经移动到新的地址,302(所请求的页面已经临时转移到新的url),307和304(具有缓存的资源)经常被使用。 400~499:客户端请求出错,经常使用404(服务器找不到请求的页面)和403(服务器拒绝访问,权限不足)。 50 ~ 599:服务器端有错误,经常使用500(请求未完成。 服务器遇到不可预测的情况) Cookie和Session:服务器和客户端的交互仅限于请求/响应过程,结束后会断开连接。在下一个请求中,服务器将考虑新的客户机。 为了维护它们之间的链接,并让服务器知道这是用户之前发送的请求,需要将客户端的信息保存在一个地方。 Cookie:用户的身份由用户端记录的信息决定。 会话:用户的身份由服务器端记录的信息决定。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部