java URL、HTTP与HTML+CSS

来源:互联网 发布:大旗软件 编辑:程序博客网 时间:2024/06/10 12:35

一、Web三大基石 1

二、APIApplication Programming Interface,应用程序编程接口) 1

三、题目分析总结: 3

五、HTTP协议与寄信是类似的 6

请求报文 6

响应报文 7

1. HTTP请求头 8

2. HTTP响应头 8

3. HTTP响应状态码 8

六、HTML基本结构 9

 

一、Web三大基石

  URL:Uniform/Universal  Resoure Locator统一资源定位符     标识资源的位置

HTTP:Hyper Test Transtormation Protocal  :规定的资源传输格式

HTML Hyper Test Markup Language超文本标记语言

资源/内容本身的格式

   Web 就是互联网分享资源/内容

   www World wide web

Deprecated Methods:被废除的方法

推荐书籍:《失控》

二、APIApplication Programming Interface,应用程序编程接口)

APIApplication Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API系统调用的区别:系统调用代码都处于内核态,API是操作系统提供的一组函数,通常以库的形式存在,供用户调用,所以,API代码可能是完全是用户空间代码,也有的API调用了系统调用。

 

常用的方法

Endswith()

Startwith()

Substring():子字符串

Equals()

equalsIgnoreCase()

indexOf()

Length()

replaceAll()

toUpperCase()

toLowerCase()

Intern()

字符串字面量在编译时被放到了字符串池

临时生成的字符串在堆中

两者保存位置不同,访问地址自然不同

==判断是否为“同一”东西,即内存一致

==是“同一性”判断,equals是“相等”性判断

 

三、题目分析总结:

1.Javafloatdouble只能表示小数的近似值,如float0.1+0.8的结果不等于0.9。相比来说double只是比float精度高一点而已。

2.Java是强类型编程语言,变量声明之后其类型不会变,赋值时也只能赋类型兼容的值。

3.如果环境变量的【用户变量】中有一个 JAVA_HOME变量,而【系统变量】中也一个JAVA_HOME变量,在命令行中敲echo %JAVA_HOME%时会显示【系统变量】中的值,因为系统变量优先级更高。X
解析:用户变量优先

4.f/elseswitch的区别在于:if/else是基于boolean值的双分支,switch是基于整数、枚举、字符串的多分支

5.单一职责原则是程序设计最主要的原则之一,它对于方法和类的设计都有效。程序设计的入门指导原则!

6.Eclipse为调试专门提供了调试透视图。调试时,可以观察到程序的调用栈,可以看到方法内部变量的值

7.JDKJavaSE的开发工具包

 java包名采用小写字母

java方法名应该使用驼峰命名法

8.关于Java异常处理,说法正确的是 ABCD

A Java中的异常可以通过throws传递出去

B Java中的异常可以通过throw抛出

C Java中的异常可以通过catch捕获

D Java中的finally语句一定会被执行

9.请翻译以下单词:

Stack 栈、Heap 堆、

Refactor 重构、Source 源代码

Constructor 构造函数、extends 继承的关键字

 

四、图解URLURL的理解

http://  baidu.com   :80     /path      ?q=a     #hash

协议     主机名      端口号   资源位置   Query String   Hash Tag

 

1.协议:

 对于操作系统来说,不同的协议关联着不同的应用程序

        http/https  -> 浏览器

        tel -> 电话拨号程序

        mailto  -> 电子邮件

http——超文本传输协议资源

https——用安全套接字层传送的超文本传输协议

ftp——文件传输协议

mailto——电子邮件地址

ldap——轻型目录访问协议搜索

file——当地电脑或网上分享的文件

news——Usenet新闻组

gopher——Gopher协议

telnet——Telnet协议

 

   对于资源来说,不同的协议意味着不同的传输格式

   URL 中的协议都是应用层协议

 

2.主机

     构成:主机名 + 域名

     主机名表示提供服务的一台服务器或一个服务器集群

          www 百度提供的是网页搜索服务

           Map 百度提供的是地图服务

域名  表示一个公司、机构、组织、个人等

   一个域名下可以有N个主机

 

3.DNS

主机名.域名  通过DNS解析成IP地址

     

4.IP地址

     本质上来说是一个整数

      192.168.1.211(点分十进制转换格式,方便记忆)

      实际是4个字节,是一个int

   网络上一个服务器/电脑的门牌号

  

5.端口号

一台电脑上有N个联网的程序,为了区分是哪个程序在收发数据包,需在数据包中用一个整数来区分不同的程序-----端口号

Short型的整型  16位的

端口的使用有一个并不严格的管理机制

  众所周知的程序或服务,它们的端口号已经习惯被固定了

例如:Web服务:80端口

      安全Web服务:433

      FTP服务: 21

      MySQL数据库服务: 3306

操作系统会把小的端口号(0~5000)保留下来,而大的端口号随机分配给程序使用

端口在内网与外网通信中,可以被NAT利用,用来区分内网中的计算机

 

6.查询字符串  QueryString

Key1 = value1&key2 = value2

   URLEncode 这种方式把&=等特殊字符进行编码  %E2

   

0码方案,而非转义方案

 查询字符串会传到服务端,并被服务器端接收和使用

 

7.Fragment/Hash 片段

   只会被浏览器识别和利用

     不会传到服务端

 

 

 

五、HTTP协议与寄信是类似的

 

B(主动,暗处)     -->     S(明处、被动)

不对等的通信结构

发消息:请求       Request

接收消息、处理并回应:响应     Response

 

      HTTP消息报文 ==  一封信/明信片

请求报文

请求行==信封上的地址    

   GET      http://www.baidu.com       HTTP/1.1

   请求方法     URL(请求的资源)        协议和版本号

 

请求头 == 信封上的其他信息

     Accept:text/html;*/*

     Accept-Language:zh-CN;zh

     请求头名:请求头值

    

部分请求头

    请求头中不能有中文,如果非要写中文,请编码(URLEncoding

    Cookie:向服务端发送少量数据(用户偏好设置,用户身份标识

    User-Agent:将操作系统、浏览器等信息发送给服务器        

    Content-Type:表示能够发送什么格式的请求内容(内容格式)

    Accept:表示能够接受什么格式的响应

    

 

请求体 ==信封上的信纸(有一些请求没有请求体,相当于寄明信片)

     请求头的格式在Content-Type中标识出来

 

请求体最常用的格式

 

X-www-form-urlencoded

       Key1 =  value1&key2 = value2

 

multipart/form-data

     上传文件的专用格式

 

json

    {

      Key :value,

      Key2:value2

}

 

Xml

   <data>

       <key1>value1<key1>

       <key2>value2<key2>

   <data>

 

 

 

 

 

 

响应报文

       响应行 ==信封

              200 OK HTTP/1.1

           状态码  状态描述   协议版本呢

 

 

       响应头 ==信封上的其他信息

            响应头名:响应头值

            同样不能有中文(中文需要URLEncode

           

          部分响应头

             Content-Type

             Content-Length

             Set-Cookie    给浏览器设置Cookie,设置后浏览会保存这个Cookie,下次请求的时候,会把Cookie再发给服务器

       响应体 ==信纸(有一些响应也没有响应体)

 

Google Chrome 内核的浏览器或IE内核的浏览器按F12

       开发者工具

 

1. HTTP请求头

accept:浏览器通过这个头告诉服务器,它所支持的数据类型。如:text/html, image/jpeg
accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集。
accept-encoding:浏览器通过这个头告诉服务器,它支持哪种压缩格式。
accept-language:浏览器通过这个头告诉服务器,它的语言环境。
host:浏览器通过这个头告诉服务器,它想访问哪台主机。
if-modified-since:浏览器通过这个头告诉服务器,缓存数据的时间
referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的(防盗链)
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是维持链接。

2. HTTP响应头

location:服务器通过这个头告诉浏览器跳到哪里。
server:服务器通过这个头告诉浏览器服务器的型号。
content-encoding:服务器通过这个头告诉浏览器数据的压缩格式。
content-length:服务器通过这个头告诉浏览器回送数据的长度。
content-language:服务器通过这个头告诉浏览器语言环境。
content-type:服务器通过这个头告诉浏览器回送数据的类型。
refresh:服务器通过这个头告诉浏览器定时刷新。
content-disposition:服务器通过这个头告诉浏览器以下载方式打开数据。
transfer-encoding:服务器通过这个头告诉浏览器数据是以分块方式回送的
以下三个表示服务器通过这个头告诉浏览器不要缓存
expires-1
cache-controlno-cache
pragmano-cache

3. HTTP响应状态码

100-199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
200-299:表示成功接收请求并已完成整个处理过程,常用200
300-399:未完成请求,客户需进一步细化请求,常用302,307,304
400-499:客户端的请求有错误,常用404
500-599:服务器端出现错误,常用500

 

Firefox 菜单-->开发者-->网络

 

 

HTTP 工具1

Telnet

     默认需在控制面板--程序--添加删除windows功能

          选中telnet安装

打开cmd命令行,把屏幕缓冲区调到最大值

 

Telnet www.zhiyou100.com 80

Ctrl + ] 开始回显

按回车进入编辑

 

GET/HTTP/1.1

HOSTwww.zhiyou100.com

 

2次回车,不能按退格键修改

准确地显示HTTP请求和响应报文

    不适合发送复杂的请求

 

 

HTTP工具2

     推荐使用Firefox中的HttpRequester

      图形化,功能强大,可以很方便地设置复杂的请求报文

      可以查看原始报文

      很容易安装和使用(Chrome中也有类似插件,但需要科学上网)

 

 

 

六、HTML基本结构

 

<!DOCTYPE html >   文档类型声明

<html>             文档根标签

    标签大多数成对出现,但也有但标签

    <head>  </head>   文档头,文档头的内容不会在【网页】上出现

                      文档头中的数据是被浏览器使用的

                      可以给浏览器指明网页的编码格式

                      可以给浏览器指示显示什么窗口标题

                      可以给浏览器指示网页的其他行为

 

    <body>  </body>    文档主体,body中的内容显示在网页中,除非它被隐藏掉           文字、图片、视频、音频、程序(Applet)、flashSilverlight...

               网页又被称为超文本!

</html>

 

 

基本图文标签

标题h1~h6     head

段落 p         paragraph

图片 img[src]    image

超链接 a[href]   anchor

 

 块标签/行标签/行内块

       块标签:   独占一行,后面不能显示其它标签(自带换行符)

           可以设置宽度和高度  h1p

 

    行标签:   可与其它行标签共处一行,太长了,自动换行(不带换行符)                宽度和高度无效

                a标签

 

行内块:     可与其它标签共片一行

             但是可以设置宽度和高度   img标签

 

      通用块标签:  div

      通用行标签: span

 

 

列表

有序列表  ordered list

              ol>li*n   n:指定生成nli

无序列表  unordered list

              ul>li*n

详情列表   details list

              dl>(dt+dd)*3

 

表格

table>(tr>td*n)*m

 

合并单元格:rowspan = 2”  把2行合并

            Colspan =  4” 把4列合并

 

表格线:border=1;

 

 

表单

接收用户的输入  input

   text     普通文本

   password   密码

   tel        手机号

   email      邮件

   number    数字

   

   radio     单选框

   checkbox  复选框

   submit    提交按钮

   button    普通按钮

   reset     重置按钮

   <botton> 按钮

 

   让用户选择--选择框select>option

   选择框多选 <select multiple>

   多行文本框 textarea

 

   label     提示标签

   fieldset    表单分组

   上传文件 input[type = file]

   存放图片 input[type = image ]

 

 

重要功能:发起HTTP请求

     发起请求的条件如下:

       form[action =提交地址][method =提交方法][enctype = multipart/form-data]

       input[type = submit]  submit按钮  <buttom>提交<button>

 页面跳转(刷新)

数据的keyinput\select\textareaname属性决定

对于radio\checkbox多个选项共用一个key,就要求他们的name相等

 

<input type =radio name =sex  value =>

<input type =radio name =sex  value = >

 

流式布局

      网页默认的布局方式

      分块标签和行标签

      块标签独占一(多)行

      行标签可共享一(多)行

 

     布局时,除遵守行和块的性质外

        默认遵守从上到下,从左到右的排列方向

        在上下方向上,尽可能少地占用空间

 

总结:与人类书写习惯相同版本

 

 

<iframe>

     在页面中加载一个子页面

     用链接控制iframe的加载内容:

     在iframe 加上name属性

          atarget属性等于iframe标签的name属性值

 

 

样式表

  html文件中导入样式表文件

 <link rel “stylesheet” href = 样式表文件的位置

 

 <link>标签通常放到<head>标签中,否则页面太大时,可能会发生闪烁现象

 

样式语法

    筛选器{

       样式名:样式值;  注意符号都是英文的!

}

 

筛选器

     控制样式影响的范围

     标签筛选器   body{} h1{}

         筛选器 == 标签名

 

id筛选器  #idValue{}

   <p id = idValue>控制这里</p>

 

类筛选器 .className{}

<div class =”className  className1 className3”></div>

<span class = “className”></span>

....class =”className”

 

 

 

/*body{

background-color:#456;

}*/

*{

/*计量尺寸 border-box 边框盒

Content-text 内容盒

内容 +内边距 = padding-box

内容 + 内边距 + 边框 =border-box

*/

box-sizing:border-box;

}

body span{

margin:0;

/*外边距

设置四个值

 

设置两个值

上下左右

margin-top 上

margin-bottom 下

margin-left 左

margin-right 右

*/

 

padding:0px;

/*内边距

 

padding-top 上

padding-bottom 下

padding-left 左

padding-right 右

*/

}

.red-text{

/*文本颜色*/

color:red;

 

font-size:24px;

font-style:italic;

 

/*字体*/

font-family: 微软雅黑;

 

font-weight:bold;

 

/*字体装饰 下划线 */

text-decoration:underline;

 

/*行高*/

line-height:100px;

 

/*段首缩进2em*/

text-indent:2em;

 

/*文本的水平对齐 */

text-align:center;

 

/*垂直对齐 单元格内起作用*/

vertical-align:middle;

 

}

 

#box span{

background-color:yellow;

}

 

#box{

/*边框线: 复合样式 线粗细 线型 颜色

border-width

border-style

border-color

*/

border:3px solid blueviolet;

 

padding:12px 20px;

height:300px;

width:600px;


}

 

 

原创粉丝点击