WEB开发技术
生活中的WEB
现在已经进入移动互联时代,生活中越来越依赖手机、互联网等等,你访问的网站,使用的APP等,WEB技术都占有重要地位。现在就从你点击一个网页链接或者发起一次接口请求说起。
假如你访问的是:www.baidu.com。这显然是一个域名,如果要和百度服务器通信需要使用TCP/IP协议中的IP地址,它可以指向唯一的主机,客户机会想DNS服务器发起请求,完成域名到IP的过程。
得到IP地址后,浏览器会和服务器建立TCP连接(这就涉及到很多底层网络访问,比如子网映射、路由转发、三次握手等等),传输HTTP协议,如果没有指定端口,HTTP协议默认为80端口,随后浏览器发出www.baidu.com的网页资源请求:
GET / http/1.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__cfduid=d26af6........
Host:www.baidu.com
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
服务器接收到获取请求,然后处理并返回一个响应。可能是一个WEB服务器或者负载均衡在监听端口,或者是web服务器软件(像IIS和阿帕奇)接收到HTTP请求,然后确定执行什么请求处理来处理它。请求处理就是一个能够读懂请求并且能生成HTML来进行响应的程序(像ASP.NET,PHP,RUBY…)。中间可能会涉及数据库操作、逻辑处理等等。返回的响应如下:
HTTP/1.1 200 OK
BDPAGETYPE:2
BDQID:0xa64f2b530005bcc0
BDUSERID:802425255
Cache-Control:private
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html;charset=utf-8
Date:Thu, 11 May 2017 12:33:16 GMT
Expires:Thu, 11 May 2017 12:33:16 GMT
Server:bfe/1.0.8.18
Set-Cookie:BDSVRTM=162; path=/
Set-Cookie:H_PS_PSSID=1434_21088_18560_17001_21931_22919_20929; path=/; domain=.baidu.com
Set-Cookie:__bsi=13914547124298889310_00_0_I_R_166_0303_C02F_N_I_I_0; expires=Thu, 11-May-17