Head First Servlet&JSP 1.Why use Servlets & JSPs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34524528/article/details/85803274

GUI应用程序的部署难,动态网站部署简单,广泛发布。
服务器用HTTP(HyperText Transport Protocal)发送HTML(HyperText Markup Language)给浏览器。

HTML有标签和属性
浏览器将HTML代码创建为网页并渲染到显示器上。

HTTP运行在TCP/IP之上。
TCP负责让被分快的文件在网络节点之间完整的传输
IP在下面让每一个文件块能在路由之间找到去往目的地的路。
HTTP会话的结构就是浏览器请求,服务器相应,如此反复。

request请求:HTTP,URL,参数
response响应:状态码,Content-Type(MIME),Content
HTTP是IETF标准,RFC 22616,Apache 是一个处理HTTP请求的服务器,Firefox是一个发送HTTP请求的浏览器。

一个HTTP响应有一个header,并携带了HTML数据。
HTTP请求有不同的方法,不同的方法表示不同的请求类型,和不同的消息格式,如 GET(用户点击新的网页链接)&POST(用户点击提交按钮).
GET只负责请求,POST不仅可以请求同时还能发送数据给服务器。
其他方法:HEAD,TRACE,PUT,DELETE,OPTIONS,CONNECT.

其实GET可以携带少量数据,用?将路径和参数隔开,参数之间用&,形如/somepath.../demo.jsp?x=1&y=2&z=3
还得用POST的原因:

  • 参数有限制,视服务器而定
  • 明文
  • 相对POST,GET不能将表单数据添加到书签

GET:请求=request line (参数在此,name/value pair) + request header
POST:请求=request line + request header + message(payload)(参数在此)

Response

  • header :协议版本 HTTP/1.1,状态码200 OK,内容类型Content-Type …
  • body:内容

GET 全过程:

输入URL->发送请求->服务器接受请求->找到资源->发送相应->浏览器接响应->渲染页面。

URL(Uniform Resource Locators)
Protocal+Server+Port+Path+Resource
http://www.wickedlysmart.com:80/beeradvice/slect/beer1.html

TCP 端口号(Port),一个16-bit的数字(0~65535),标识了一个运行在服务器硬件上的特定软件程序,而非物理插口。

协议 端口
FTP 21
Telnet 23
SMTP 25
Time 37
HTTP 80
POP3 110
HTTPS 443

0~1023 TCP 端口为知名的服务保留,不能用于自定义的服务器程序。
使用不同协议的多个应用可以使用同一个端口。

所谓静态网页,就是存在目录里,等着被服务器交接给浏览器的网页,中途不做任何更改,每一个浏览器得到的网页都一样。
比如需要网页上显示当地时间,静态网页显然就做不到了。

Web Server App 只可以serve,不能在 serve 的东西上 do computation,但是服务器上的其他 App 可以。
故,可以将请求交给别的程序帮忙处理。

动态创建的页面(dynamically-created pages)意味着其在被 request 之前是不存在的。request来,程序创建网页,response回去。

光靠Web Server 不能完成:

  • 动态内容
  • 在服务器存储数据

web server 将请求参数交给 生成 response 的 app 来处理。

这些帮忙处理请求的 app 在没有 Java 的世界里,叫做 CGI (Common Gateway Interface)程序。通常是 Perl 脚本写的,也可以是 C,Python, PHP.

请求来,web server app 接受,启动CGUI程序并将参数转给它,CGI程序构建一张新的网页交给web server app后关闭,web server app将网页返回给浏览器。
从web server app 的角度看,网页始终是静态的。

Perl Servlet
语言晦涩 Java流行
性能差 性能好
CORBA J2EE

Servlet 必须将所有内容print到HTTP response stream 中,为了不让 Java Class 塞满 HTML 和字符串变量(否则HTML中的回车换行和双引号会把人逼疯),于是有了JSP,将一些Java代码移动到HTML中,就像在HTML中插入了变量。(把Java放进HTML而不是反之)

JSP让Java 开发者不用写HTML了,但是会让网页设计师多写一点额外的“Java”,不是真的Java代码,而是JSP标记语言。

Bullet Point

  • HTTP TCP/IP
  • HTTP Request/Response
  • GET/POST
  • MIME
  • URL
  • Web Server , CGI
  • Servlet/JSP

猜你喜欢

转载自blog.csdn.net/sinat_34524528/article/details/85803274
今日推荐