2、web服務器
2.1 技術講解
ASP:
- 微軟:國內最早流行
- 在HTML中嵌入了VB的腳本,ASP+COM;
- 在ASP開發中,基本一個頁面都有幾千行的業務代碼,頁面及其混亂
- 維護成本高
<html>
<head>
</head>
<body>
<h1>
</h1>
<h1>
<%
System.out.println("hello");
%>
</h1>
</body>
</html>
PHP:
- PHP開發速度很快,功能強大,跨平臺,代碼簡單
- 無法承載大訪問量的情況(侷限性)
JSP/Servlet:
- B/S:瀏覽和服務器
- C/S:客戶端和服務器
- sun公司主推的B/S架構
- 基於java語言的(所有大公司,或者一些開源的組件,都是java寫的)
- 可以承載高併發、高可用、高性能問題帶來的影響
- 語法像ASP
2.2 web服務器
服務器是一種被動的操作,用來處理用戶的請求和給用戶一些響應的信息;
IIS:
微軟的;WIndows自帶
Tomcat:
omcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認爲,當在一臺機器上配置好Apache 服務器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作爲一個與Apache 獨立的進程單獨運行的。
3、Tomcat
- Tomcat的端口號:8888(本機設置後)
- mysql默認端口號:3306
- http:80
- https:443
3.1 配置
更改端口號(D:\apache-tomcat-9.0.31\conf\server.xml\86行):
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置主機名稱(D:\apache-tomcat-9.0.31\conf\server.xml\152行) (還需修改本地hosts文件)
- 默認的主機名爲:localhost-》127.0.0.1
- 默認網站應用存放的位置爲:webapps
<Host name="www.test.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
高難度面試題
請你談談網站是如何進行訪問的?
-
輸入一個域名;回車
-
檢查本機的C:\Windows\System32\drivers\etc\hosts配置文件下有沒有這個域名的映射
1.有:直接返回對應的IP地址,這個地址中,有我們需要的web程序,可以直接訪問
127.0.0.1 www.test.com
2.沒有:去DNS服務器找,找到返回,找不到報錯
3.2 發佈一個web網站
- 將自己寫的網站,放到服務器(Tomcat)中指定的web應用的文件夾(webapps)下,就可以訪問了網站應該有的結構
目錄:
--webapps : Tomcat服務器的web目錄
-ROOT
-kritostudy : 網站的目錄名
-WEB-INF
-classes : java程序
-lib : web應用所依賴的jar包
-web.xml : 網站配置文件
-index.html默認的首頁
-static
-css
-style.css
-js
-img
4、HTTP
4.1 什麼是HTTP
HTTP(超文本傳輸協議)是一個簡單地請求-響應協議,它通常運行在TCP上。
- 文本:html,字符串… …
- 超文本:圖片,音樂,視頻,定位,地圖
- 默認端口號:80
Https:安全的
- 默認端口號:443
4.2 兩個時代
- HTTP1.0
- HTTP/1.0:客戶端可以與web服務器連接後,只能獲得一個web資源,斷開連接。
- HTTP2.0
- HTTP/1.1:客戶端可以與web服務器連接後,可以獲得多個web資源。
4.3 HTTP請求
- 客戶端—>發請求(Request)—>服務器
百度:
Request URL:https://www.baidu.com/ 請求地址
Request Method:GET get方法/post方法
Status Code:200 OK 狀態碼:200
Remote(遠程) Address:14.215.199.39:443
Accept:text/html
Accept-Encoding:gzip,deflate,br
Accept-Language:zh-CN,zh;q=0.9 語言
Cache-Control:max-age=0
Connection:keep-alive
1、請求行
- 請求行中的請求方式:GET
- 請求方式:Get,Post… …
- get:請求能夠攜帶的參數比較少,大小有限制,會在瀏覽器的URL地址欄中顯示數據內容,不安全,但高效
- post:請求能夠攜帶的參數沒有限制,大小沒有限制,不會在瀏覽器的URL地址欄中顯示數據內容,安全,但不高效
2 、消息頭
Accept 告訴瀏覽器它所支持的數據類型
Accept-Encoding 支持哪種編碼格式 GBK UTF-8 GB2312
Accept-Language 告訴瀏覽器它的語言環境
Cache-Control 緩存控制
Connection 高速瀏覽器,請求完是斷開還是保持連接
Host 表示主機
4.4 HTTP響應
- 服務器—>響應—>客戶端
百度:
Cache-Control:private 緩存控制
Connection:Keep-Alive 連接
Content-Encoding:gzip 編碼
Content-Type:text/html 類型
1、響應體
Accept 告訴瀏覽器它所支持的數據類型
Accept-Encoding 支持哪種編碼格式 GBK UTF-8 GB2312
Accept-Language 告訴瀏覽器它的語言環境
Cache-Control 緩存控制
Connection 高速瀏覽器,請求完是斷開還是保持連接
Host 表示主機
Refresh 告訴客戶端多有刷新一次
Location 讓網頁重新定位
2、 響應狀態碼(重點)
- 200:請求響應成功
- 3XX:請求重定向
- 重定向:你重新到我給你的新位置
- 4XX:找不到資源 404
- 5XX:服務器代碼錯誤 500
- 502:網關錯誤
常見面試題:
當你的瀏覽器中地址欄輸入地址並回車的一瞬間到頁面能過展示回來,經歷了什麼?