WGU C193 Client Server Vocab, c193 pt 7, c193 pt 5, c193 pt 9, c193 pt 4, c193 pt 2, C193, c193 pt 3, C193 part 1

Ace your homework & exams now with Quizwiz!

What is contained in a datagram?

A datagram contains a header and payload.

Which transport layer device reviews packets to determine whether they get accepted or denied passage to a private network from the Internet?

A firewall.

What is returned by the getInetAddresses() method?

A java.util.Enumeration containing an InetAddress object for each IP address the interface is bound to

What MIME subtype would be used for audio?

AAC, MP3

202

Accepted

What is the HTTP response code 2xx?

It is used for success codes.

409

Conflict

common fields from the header

Content-type Content-length Content-encoding Date Last-modified Expires

100

Continue

How do you enable CookieManager?

CookieManager manager = new CookieManager(); CookieHandler.setDefault(manager);

What is the name of the pattern that uses Try{ } Catch{ } Finally{ }?

Dispose pattern

417

Expectation Failed

What is the most concrete subclass of the InputStream class?

FileInputStream()

getAllByName()

Given the name of a host, returns an array of its IP addresses, based on the configured name service on the system.

___ tells the server only to return the HTTP header, not to actually send the file. The most common use of this method is to check whether a file has been modified since the last time it was cached

HEAD

When connected to a server, what request will check to see if a web document has been modified since the document was last cached?

HEAD will request to see if a web document has been modified since the document was last cached.

Which type of protocol is closely related to the URLConnection class?

HTTP

407

HTTP_PROXY_AUTH

226

IM Used

Telnet Port Number

Port 23

Which type of device is used to request a service from a server and forward the response back to to original requester, acting as a go-between?

Proxy Server

What receives a request for a remote server from a local client, makes the request to the remote server, and forwards the result back to the local client?

Proxy server

getLocalAddress() and getLocalPort()

The getLocalAddress() and getLocalPort() methods tell you the network interface and port the Socket is connected from.

A resource is a thing that is identified by a ___, which can be a book, a file, a website, a URL, an Internet host, etc.

URL

suspend, stop

___ and ___ are the least desirable ways for a thread to indicate it's ready to pause because they can leave objects in inconsistent states.

HTTP

___ connection types GET PUT POST TRACE HEAD DELETE OPTIONS

ServerSocket

___ constructors ServerSocket(int port)throws BindException IOException ServerSocket(int port, int queuelength, IntAddress bindAddress) throws IOException serverSocket() throws IOException

URL

___ is composed of scheme authority path fragment Identifier query string

2628

dict tcp

Filters cannot be

disconnected from a stream

BufferedInputStream / BufferedOutputStream

does not declare methods of its own

7

echo tcp/udp

filters come in two versions

filter streams, and the readers and writers.

runnable

implement ___ then override run() then adding other methods to have a subclassable runnable.

java.io.outputStream

java's io class is

Given, Thread t = new Thread(); What will start the new thread?

t.start();

Streams are synchronous means...

when a thread asks a stream to read/write, it waits for the data to be read/written before doing anything else.

Interrupted Exception

when interrupt() is invoked, what is thrown that can terminate infinite loops.

Use last filter in the stream

when reading -Overwriting the reference will help with this

openConnection

which method to retrieve data from a URL provides more control over the download process?

Writers

-Mirrors the java.io.OutputStream class -Never used directly; used polymorphically, through one of its subclasses. -Writers can be buffered; either directly or chained to BufferedWriter.

OutputStreamWriter

-Most important concrete subclass of writer. -Converts characters to bytes according to specified encoding. -If no encoding is specified, the default platform encoding is used.

Readers

-Reader class mirrors java.io.InputStream -Never used directly, only through subclasses. -read() method returns a single Unicode character as an int with a value from 0 to 65,656 or -1 on end of stream.

BufferedOutputStream

-Stores written data in a buffer until buffer is full or flushed. -Does not declare any new methods of its own -Write places data in the buffer rather than directly on the underlying output stream

PrintStream assumes

-assumes the default encoding of the platform on which it's running. -Eats all exceptions -Unreliable for network connections

flush()

-breaks deadlocks by forcing the buffered stream to send its data even if the buffer isn't full. -You should do this to all streams before you close them, otherwise data may be lost

isLinkLocalAddress()

-helps IPv6 addresses self-configure -begins with FE80:0000::

isMCNodeLocal()

-is address interface-local multicast -begins with FF01 or FF11

isMCSiteLocal()

-is address site-wide multicast -begins with FF05 or FF15

isMCLinkLocal()

-is address subnet-wide multicast -begins with FF02 or FF12

mark()

-marks the current position in the stream -Only one mark in a stream at a time

isSiteLocalAddress()

-may be forwarded by routers within a site or campus -begins with FEC0:0000:: - begin with FEC0:0000:0000:0000 - returns true if the address is an IPv6 site-local address, false otherwise.

isMCGlobal()

-may have subscribers around the world -begins with FF0E or FF1E

isLoopbackAddress()

-returns true if address is loopback -IPv4: 127.0.0.1 -IPv6: 0:0:0:0:0:0:0:1 (::1)

isAnyLocalAddress()

-returns true if the address is a wildcard address -wildcard address matches any address of the local system -IPv4: 0.0.0.0 -IPv6: 0:0:0:0:0:0:0:0 wildcard address 0.0.0.0 or 0:0:0:0:0:0:0:0 aka ::

InputStreamReader

-the most important concrete subclass or Reader. -Reads bytes from stream and converts into characters according to specified encoding and returns them

InputStreamReader and OutputStreamWriter

-the most important concrete subclasses of Reader and Writer. -Translates to Unicode of specified encoding.

BufferedInputStream

-tries to get requested data from the buffer, and only when the buffer runs out of data does the stream read from the underlying source. -Does not declare any new methods of its own -Overrides methods from InputStream & supports marking and resetting

preempts

while a thread runs, a thread of higher priority unblocks , the thread scheduler __________, or interrupts, the lower-priority thread and assigns the unblocked higher-priority thread to the processor.

What is used to write data to the stream?

write()

What is this code doing? CookieManager manager = new CookieManager(); manager.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER); CookieHandler.setDefault(manager);

This code tells Java to block third-party cookies, but accepts cookies from the server it's directly talking to.

Which is true about threads versus processes?

Whereas each separate process has its own block of memory, threads are easier on resources because they share memory

public void write(char[] test)

Which class of writers will write characters in an array?

b. t.setPriority(15);

Which line of code will result in an IllegalArgumentException being thrown? a. t.setPriority(1); b. t.setPriority(15); c. t.setPriority(5); d. t.setPriority(10);

main()

Which method is returned when a single thread program exits?

Thread t = new Thread(); t.start ();

Which method should be invoked to start a new thread running in a virtual machine?

public void write(byte[] a)

Which method will allow Java to store IP addresses in an array by using an output stream?

TCP & UDP

Which protocols reside in the transport layer?

Firewall

Which transport layer device reviews packets to determine whether they get accepted or denied passage to a private network from the Internet?

The much better solution to finding out if the digest is null is to have the object just tell us when it's null by sending a ___

callback

Readers and writers

can be chained to input and output streams to allow programs to read and write text rather than bytes.

advantage of breaking data into packets

can be checked for damages in transit using checksums

asterisk " * "

can be used to indicate that all the hosts within a particular domain or subdomain should not be proxied -Dhttp.noProxyHosts=*.oreilly.com

yes

can code that synchronizes on a different object still run in parallel even if it uses a synchronized resource?

methods of the java.util.Date class

can convert a long to a String

monitor

each object in java is associated with it, which a thread can lock or unlock. Only one thread at a time may hold a lock on a ______.

lock field

each writer class has a ___ ___ that specifies the object that writes to the writer synchronize on.

URLEcnoder.encode()

encodes blindly. it does not distinguish between special characters used as part of the URL or query string such as / or =

what does inputStreamReader convert characters based on

encoding scheme

Socket does not override

equals() or hashcode()

What are DataStreams intended for?

exchanging data between two Java programs through network connection, a datafile, a pipe, or some other intermediary

InetSocketAddress.createUnresolved()

factory method used to skip looking up the host in DNS

bufferedReader bufferedWriter lineNumberReader pushbackReader pushbackWriter are examples of ___ ___ ___ ___?

filter readers and writers

filter classes

filter streams read/write classes

raw data

filters work mostly with ____ ____

Filter Class

A class that can be attached to a raw stream like Input or Output Streams to translate raw bytes to and from other formats.

Network

A collection of computers and other devices that can send data to and receive data from one another more or less in real-time.

Cooperative thread scheduler

A cooperative thread scheduler waits for the running thread to pause itself before handing off control of the CPU to a different thread.

What does NetworkInterface class represent?

A local IP address.

getSupportedCipherSuites()

A method in SSLSocketFactory that tells you which combination of algorithms is available on a given socket.

getEnabledCipherSuites()

A method of SSLSocketFactory which tells you which suites this socket is willing to use.

What is a network?

A network is a collection of computers and other devices that are connected to enable users to share hardware, software, and data, as well as to communicate electronically in more or less real time.

A client and a server can coexist in the same machine?

A system can act as Server and Client simultaneously. That is, one process is acting as Server and another is acting as a client. This may also happen that both client and server processes reside on the same machine.

Define the HTTP Response Code: 202

Accepted

When the noargs read( ) is done reading a single byte of data, what does it return?

An int between 0-255

OutputStream.write(int b) takes an int and writes what?

An unsigned byte.

Why would you convert a signed byte to an unsigned byte?

Because a signed byte returns an int between -128 to 127 instead of 0-255

Reading Data from a Server

Construct a URL object. Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. Configure the URLConnection. Read the header fields. Get an input stream and read data. Get an output stream and write data. Close the connection.

What is the line of code performing? URL u = new URL(""http://www.abc.com/"");

Constructing a URL object from a string

The ___ interface defines a single call() method that can generically return any type.

Callable

Returning Information from a Thread

Callback is nothing but invoking a method in the main class that started it. It is called callback because the thread calls its creator back when it's done. Instead of directly creating a thread, sometimes ExecutorService is created that creates threads whenever it is needed. Race condition occurs when two or more threads can access shared data and they try to change it at the same time.

Synchronizing a method & performance

Can create a severe performance problem on some virtual machines possibly slowing down a machine by a factor of three. Dramatically increases the chances of a deadlock. Also, its often not the object itself you need to protect from simultaneous modification or access.

What type of data do the write methods in PrintWriter print?

Characters

java.io.Reader

Class specified the API by which characters are read

comparing an URI to anything other than another URI returns a

ClassCastException

4xx

Client Error

What does the 4XX line of HTTP response codes mean?

Client Error 400 - Bad Request 401 - Unauthorized 402 - Payment Required 403 - Forbidden 404 - Not found 405 - Method Not Allowed 406 - Not Acceptable 407 - Proxy Authentication 408 - Request Timeout 409 - Conflict 410 - Gone 411 - Length 412 - precondition failed 413 - Request entity too large 414 - Request URI too long 415 - unsupported media type 416 - Requested range not satisfiable

Define the HTTP Response Code: 4XX series

Client side error

Which model is characterized by storing large quantities of data on an expensive, high-powered server or cloud of servers while most of the program logic and the user interface is handled by client software running on relatively cheap personal computers?

Client/server model

try with resources can be used with any object that implements the___ interface, which includes almost every object you need to dispose

Closeable

Thread safe lists

Collections.synchronizedList()

Thread safe map

Collections.synchronizedMap()

URL does not implement _________

Comparable.

Define the HTTP Response Code: 100

Continue

What is Network Address Translation?

Conceals IP addresses of organization's host computer. Most of the nodes on the network have local, non-routable addresses, that connect the local networks to the ISP.

Internet layer

Defines how bits and bytes are organized into packets, and the addressing scheme by which different machines find each other. IP protocol is the only network protocol that java understands. IPV4, IPV6 send data in packets called datagrams. IPV4 headers are 20 to 60 bytes long. IPV4 payload is 65,515 bytes max. IPV6 header is larger and payload up to 4Gbytes.

Application layer

Delivers data to the user.

Which is true about Asymmetric encryption?

Different keys are used to encrypt and decrypt the data

java.io.FileInputStream and sun.net.TelnetOutputStream

Different stream classes that read and write particular sources of data.

Which statement is true about using instance methods instead of static methods for callbacks?

Each instance of the main class maps to exactly one file and can keep track of information about that file in a natural way without needing extra data structures.

420

Enhance Your Calm (Twitter)

Instead of directly creating a thread, sometimes this is created that creates threads whenever it is needed.

ExecutorService

What is the purpose of Executors?

Executors make it quite easy to set up thread pools you simply submit each task as a Runnable object to the pool. You get back a Future object you can use to check on the progress of the task.

How do you set the size of an Executors' thread pool?

Executors.newFixedThreadPool(#). For example: ExecutorService pool = Executors.newFixedThreadPool(THREAD_COUNT);

Which of the following prefixes is used for searching the group records only and showing all individuals in that group?

Expand or *

424

Failed Dependency

You can construct a URL object from a relative URL string and a base URI object

False, relative URL objects can be constructed from a base URL object and a relative URL string

Which class is the most important concrete subclass of Reader?

FileInputStream

Which subclass of InputStream is used to read data from a file?

FileInputStream

what methods does any subclass of writer need to overwrite

FileWriter

Which stream type is organized in a chain?

Filter

What is unique about the filter stream compared to others?

Filter Streams are usually chained.

Three types of filter class

Filter Streams, Readers, Writers

What can be chained to either an input stream or output stream?

Filter streams

part of a URL is the name of the server that provides the resource you want.

Host

The only thing a Java programmer needs to worry about on this layer is performance. This is where data is converted for transmission over physical media.

Host to network layer

What is the hidden layer?

Host-To-Network (Layer)

Physical address or Ethernet Layer?

Host-to-network (layer)

Which is more stable IP addresses or hostnames?

Hostnames are more stable. IP addresses can change.

Datagram

How IPv4 and IPv6 send packets across the internet layer

When using threads, getting the correct results can depend on which of the following factors:

How many threads the program spawns The speed of the CPU How many CPUs the system uses The algorithm the Java virtual machine uses to allot time to different threads

In which of the following objects is each cookie of the CookieStore encapsulated for providing methods to inspect its attributes?

HttpCookie

418

I'm a teapot (April Fool's joke in 1998)

Streams

I/O in Java is build on these -After one is created, you can usually ignore the details of exactly what it is you are reading or writing

What groups produce most of the standards relevant to network programming and protocols?

IETF and W3C

What is on port 143?

IMAP. It is a protocol used for accessing mailboxes stored on a server.

An if statement checks whether the content type is text or the Content-length field is missing or invalid (contentLength == -1). If either of these is true, the ___ is thrown.

IOException

Which of the following exceptions will be thrown by the reset() method if the markSupported() method returns false?

IOException

RFC 791

IP

Which address is typically assigned to the computer by the organization that is responsible for it?

IP Address

32 Bit IP address

IP V4 (internet layer)

What addressing scheme represents 90% of internet traffic still?

IP V4 (internet layer)

xxx.xxx.xxx.xxx (decimal representation of IP address)

IP V4 (internet layer)

128 bit IP address

IP V6 (internet layer)

FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF (8 quads of Hexidecimal, representing the IP address)

IP V6 (internet layer)

FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:xxx.xxx.xxx.xxx (decimal number in last quad)

IP V6 (internet layer) with IPV4 at end for backward compatibility

hostnames are much more stable than

IP adresses

The class of service is stored in an eight-bit field called ___ in the IP header.

IP_TOS

Java's Socket class, which is used by both clients and servers, has methods for which of the following operations?

Connect to a remote machine. Send data. Receive data. Bind to a port.

Socket sock1 = newSocket(host, 1234, eth0, 0); System.out.println("Connected to " + sock1.getInetAddress() + " on port " + sock1.getPort());

Connected to www.bing.com on port 1234

Observe the given code statement: try { Socket theSocket = newSocket(host, 1234, eth0, 0); System.out.println("Connected to " + theSocket.getInetAddress() + " on port " + theSocket.getPort()); } What will be the output from the code above if the host is www.myCompany.com?

Connected to www.myCompany.com on port 1234

IPV4 vs IPV6

IPv4 is four unsigned bytes each ranging from 0 to 255. IPv6 is eight blocks of four hexadecimal digits. For IPv6, leading zeros don't need to be written.

When is asynchronous IO a better alternative than threads?

If an application needs thousands of simultaneous long-lived connections

When is asynchronous IO a better alternative than threads?

If an application needs thousands of simultaneous long-lived connections.

Multiple synchronizations on the same objects.

If two threads synchronize on the same object and reach their synchronization point near the same time, once one of the two parallel threads gets into its synchronization block, the other must wait.

What is RFC 3501?

Internet Message Access Protocol (IMAP). It is a protocol for remotely accessing a mailbox stored on a server including downloading messages, deleting messages, and moving messages to different folders.

ISP

Internet Service Provider

nodes, hosts

Internet addresses consist of ____ and ____.

500

Internal Server Error

Define the HTTP Response Code: 500

Internal server error

Which layer defines how bits and bytes of data are organized into the larger groups called packets, and the addressing scheme by which different machines find one another?

Internet

Defines how bits and bytes of data are organizes into the larger groups called packets.

Internet (Layer)

IP layer?

Internet (Layer)

Responsible for defining how data is stored in packets.

Internet (Layer)

The addressing scheme by which different machines find one another.

Internet (Layer)

ICANN

Internet Corporation for assigned names and numbers

What is RFC 2821?

It is the simple mail transfer protocol. It is an application layer protocol by which one host transfers email to another host.

What is the HTTP response code 101?

It is the switching protocols. The server accepts the client's request in the Upgrade header field to change the application protocol.

What is the HTTP response code 408?

It is the timed out response code. The client took too long to send the request.

What is RFC 793?

It is the transmission control protocol. It is a reliable, connection-oriented streaming transport layer protocol.

What is the HTTP response code 401?

It is the unauthorized response code. Usually a username or password issue.

What is the Internet?

It is the world's largest IP-based network. It covers many different countries across all seven continents.

What is the purpose of threading?

It is to make use of available resources efficiently.

What is the HTTP response code 4xx?

It is used for client errors.

What is the HTTP response code 1xx?

It is used for informational responses.

What is the HTTP response code 3xx?

It is used for redirection codes.

What is the HTTP response code 5xx?

It is used for server errors.

This next section develops a full-blown HTTP server, called ___, that can serve an entire document tree, including images, applets, HTML files, text files, and more.

JHTTP

full-Fledged HTTP server that serve an entire document tree

JHTTP

Which MIME subtype is appropriate for the image/* MIME type?

JPEG

Which MIME subtype is appropriate for the image/*MIME type?

JPEG is the MIME appropriate subtype

What will allow a programmer to mitigate shoulder surfing for website usernames and passwords?

JPasswordField allows a programmer to mitigate the risk of shoulder surfing.

What is on port 110?

POP3. It is a protocol for the transfer of the accumulated email from the host to sporadically connected clients.

The ___ method is the most general method. It too uploads a representation of a resource to a server at a known URL, but it does not specify what the server is to do with the newly supplied resource.

POST

pages accessed with the ___ method should not be chached

POST

GET vs POST

POST is overused, any safe operation that does not commit the user to anything should use get rather than POST. Only operations that commit the user should use POST.

when requests cannot be completed with GET

POST should be used as it allows for URL lengths of over 2,000 characters

GET should only be used for safe operations; whereas,

POST should be used for unsafe operations

The ___ method uploads a representation of a resource to the server at a known URL.

PUT

Which of the following HTTP methods uploads a representation of a resource to the server at a known URL?

PUT

A chunk of bytes that contain information about who sent it and where it's going.

Packet

What is the advantage of breaking data into packets over a network?

Packets can be checked for damages in transit using checksums.

206

Partial Content

Which connection type can act as both the client and server from the same endpoint?

Peer-to-peer connections can have peers act as both clients and servers.

308

Permanent Redirect

The ___ solution constantly pings the digest to see if it's null ("Are we there yet? Are we there yet? Are we there yet?...")

Polling

___ contains the main() method that reads the file and creates one LookupTask per line.

PooledWeblog

FTP Port Number

Port 21

whois Port Number

Port 43

Echo Port Number

Port 7

Finger Port Number

Port 79

Abstraction in the computer's memory used to allow multiple processes access to the same internet connection.

Ports

If ___ is turned on, the client occasionally sends a data packet over an idle connection (most commonly once every two hours), just to make sure the server hasn't crashed.

SO_KEEPALIVE

The ___ option specifies what to do with datagrams that have not yet been sent when a socket is closed.

SO_LINGER public void setSoLinger(boolean on, int seconds) throws SocketException public int getSoLinger() throws SocketException

The ___ option controls the suggested send buffer size used for network input.

SO_RCVBUF

This option sets the default receives buffer size for client sockets accepted by the server socket.

SO_RCVBUF

If the ___ is turned on (it's turned off by default), another socket is allowed to bind to the port even while data may be outstanding for the previous socket.

SO_REUSEADDR

This option for server sockets determines whether a new socket will be allowed to bind to a previously used port while there mights still be data traversing the network addressed to the old socket.

SO_REUSEADDR

The ___ option controls the suggested send buffer size used for network output.

SO_SNDBUF

the amount of time, in milliseconds, that accept() waits for an incoming connection before throwing a java.io.InterruptedIOException.

SO_TIMEOUT

Normally when you try to read data from a socket, the read( ) call blocks as long as necessary to get enough bytes. By setting ___, you ensure that the call will not block for more than a fixed number of milliseconds

SO_TIMEOUT if (s.getSoTimeout() == 0) s.setSoTimeout(180000);

What protocol is on port 22?

SSH and is used for remote logins.

What are the parts of a URI?

Scheme Scheme-specific Fragment identifier

Authenticator.requestPasswordAuthentication() throws a

SecurityException

303

See Other

Which type of system is more expensive and stores vast quantities of data?

Server

5XX

Server Error

5xx

Server Error

Given, Thread t = new Thread(cb); t.setPriority(8); t.start(); What does the t.setPriority(8); line of code perform?

Sets the priority of each spawned thread to 8

PrintStream

Should be avoided for network applications. println() is platform dependant and dosn't provide a consisten return character for the new line across all platforms which makes the class unusable for rigid network protocol communications. The class also assumes the encoding which may not actually be accurate. It also eats all exceptions.

HTTP servers begins with a server that always sends out the same file, no matter what the request. It's called ___

SingleFileHTTPServer

Which of the following classes hold the content to send, the header to send, and the port to bind?

SingleFileHTTPServer

Why is the read( ) method abstract?

So subclasses can change it to the specific medium that needs to be read in (like ByteArrayInputStream for example)

You can ask for a NetworkInterface by IP address, by name, or by enumeration. Each of these throw the ___ exception.

Socket

Using the accept method, how would you construct a socket?

Socket connection = server.accept();

What is the line after constructing the socket object to instantiate it?

Socket socket = factory.createSocket("host",port);

What is the Socket Constructor?

Socket(host, port, interface, localport)

Which class provides a convenient store for local transient socket connection information?

SocketAddress

Which Java class provides a convenient store for the local transient socket connection information?

SocketAddress provides a convenient store for local transient socket connection information.

What is the construct for the SocketFactory?

SocketFactory factory = SSLSocketFactory.getDefault();

Two processes in client-server model

Sockets Remote Procedure Calls (RPC)

Socket Operations

Sockets can perform seven basic operations: Connect to a remote machine Send data Receive data Close a connection Bind to a port Listen for incoming data Accept connections from remote machines on the bound port

What protocol is on port 20?

The FTP data protocol. This port is able to transfer files.

What protocol is on port 21?

The FTP protocol. This port is used to sent FTP commands like PUT or GET.

What is the world's largest IP-based network?

The Internet

Which layer defines how bits and bytes of data are organized into larger groups called packets, and the addressing scheme by which different machines find one another?

The Internet layer.

What is an internal network not visible from the outside?

The Intranet

JPasswordField class

The JPasswordField class is a lightweight component that allows the editing of a single line of text where the view indicates something was typed, but does not show the original characters.

The code 504 along with the message Gateway Timeout is displayed when:

The proxy server did not receive a response from the upstream server within a reasonable amount of time, so it can't send the desired response to the client.

Path

The location of the resource at the resolution of the URI request. (e.g. /music/listen, /watch, /someusername)

What method is returned when a single thread program exits?

The main() method is returned when a single thread exits.

getLocalAddress() and getLocalPort()

The methods tell you the network interface and port the Socket is connected from.

isInputShutdown() and isOutputShutdown()

The methods tell you whether the input and output streams are open or closed, respectively. You can use these (rather than isConnected() and isClosed()) to more specifically ascertain whether you can read from or write to a socket.

Marking support (InputStream method mark())

The only input stream classes in java.io that always support marking are BufferedInputStream and ByteArrayInputStream. However, other input streams such as TelnetInputStream may support marking if they're chained to a buffered input stream first.

Scheme

The protocol in a URI (e.g. http:, mailto:, magnet:, etc.)

Query

The query string to post data to the server (e.g. ?searchterm=somesearchterm, ?vid=somevideoid, ?postid=somepostid)

Which is true about symmetric encryption?

The same key is used to encrypt and decrypt the data

What is this code doing? SocketAddress address = new InetSocketAddress("proxy.example.com", 80); Proxy proxy = new Proxy(Proxy.Type.HTTP, address);

This creates a Proxy object representing an HTTP proxy server on port 80 of proxy.example.com.

Using the URI "abc://admin:[email protected]:1234/path/data ?key=value&key2=value2#fragid1" What method would return the query, and what would it return?

getQuery( ); key=value&key2=value2

Which method will ensure that the character "%" followed by two hexadecimal digits are converted to the correct reserved character?

getRawPath()

What method will ensure that the character '%' followed by two hexadecimal digits are converted to the correct reserved character?

getRawPath() will ensure that the character % followed by two hexadecimal digits are converted to the correct reserved character.

___ returns the socket address of the system being connected to and ___ returns the socket address from which the connection is made.

getRemoteSocketAddress( ) getLocalSocketAddress()

methods inherited from the Authenticator superclass:

getRequestingHost() getRequestingProtocol() getRequestingPort()

Which are methods inherited from the Authenticator superclass?

getRequestingPort() getRequestingProtocol() getRequestingHost()

Using the URI "abc://admin:[email protected]:1234/path/data ?key=value&key2=value2#fragid1" What method would return the scheme, and what would it return?

getScheme( ); abc

Which class returns the value of true if the socket is set to use client mode?

getUseClientMode()

returns the value of true if the socket is set to use client mode

getUseClientMode()

inetAddress.getAllByName

gets all addresses of a host if there is more than one

Each running virtual machine has a single ___ object it uses to locate the proxy server for different connections

java.net.ProxySelector

For servers that accept connections, Java provides a ___ class that represents server sockets

java.net.ServerSocket

Which of the following packages provides classes for parsing and managing certificates?

java.security.cert

Executors class resides in?

java.util.concurrent

Callable import

java.util.concurrent.Callable

logging tool in java

java.util.logging

This package provides classes for networking applications. These classes include factories for creating sockets.

javax.net

relative URLs

not complete URLs, inherit parts from parent URL whereas a complete URL is called absolute

If there is no value specified in the URL path AND IT IS NOT A PORT, all other getter methods will return

null

how do objects register interest in the result of a callback method.

thread or runnable

Runnable state:

thread's default state. After the call to start() completes, a thread becomes runnable whether or not that thread is running

How are filters connected to the stream?

through their constructors

the issue with interrupt() on blocking threads

throwing an interrupt on a blocking thread that is sleeping is not a guarantee to solve a deadlock, infact is could cause more problems as the way this is implemented is platform specific.

NoRouteToHostException

thrown when the connection has timed out

setNeedClientAuth()

throws IllegalArgumentException

37

time tcp/udp

Why would a Java program interact with the Physical layer?

to improve performance

synchronize block

to indicate lines should be executed together, wrap them in a ___ ___.

System-wide

to install a ___-___ cache you need: a concrete subclass of ResponseCache a concrete subclass of CacheReuest a concrete subclass of CacheResponse

private, final

to make an object immutable, just make all it's fields ____ and ____, then don't write any setter methods.

set properties such as http.proxyHost and http.proxyPort

to set domain name / ip address and port number to a proxy server

toString() returns a more human readable version of an URI but for a syntactically correct URI, must use

toASCIIString()

The ___ method converts a URL object to a string that can be used in an HTML link or a web browser's Open URL dialog.

toExternalForm( ) *note: this is the toString( ) equivalent method for URLs

URL has three methods that convert an instance to another form:

toString(), toExternalForm(), and toURI().

Given https://www.company.com/current/sfs/index.html?isbn=44322#toc What is the identifier?

toc

Observe the given URL: https://www.company.com/current/sfs/index.html?isbn=44322#toc Which is the fragment identifier in this URL?

toc

filter streams

transform raw byte data into common formats.

When using instance methods instead of static methods for callbacks, each instance of the main class maps to exactly one file and can keep track of information about that file in a natural way without needing extra data structures. true or false

true

getNeedClientAuth()

true if socket requires authentication from client side, false otherwise

How would you code having to open a socket on port 13 from "time.nist.gov"?

try (Socket socket = new Socket("time.nist.gov", 13)) { // read from the socket... } catch (IOException ex) { System.err.println("Could not connect to time.nist.gov"); }

abort

what does the cache handler call if a problem arises? this method removes any data from the cache that has been stored for the request.

java.io.inputStream

what does the java reader class mirror?

local IP address

what does the networkInterface represent?

loopback address

what does un-trusted code that calls InetAddress.getLocalHost() get?

IOException

what exception is thrown by isReachable() if there is a network error.

IOException

what is UnknownHostException a subclass of?

java.lang.Thread

what is a thread an instance object of?

openStream

what is the most commonly used method to retrieve data from a URL? This method: returns an InputStream

IllegalArgumentException

what is thrown when you exceed the max setPriority()

inetAddress.getByAddress()

what method can create addresses for hosts that do not exist or can't be reached by creating an InetAddress object with an IP address and no hostname

getInetAddress

what method do you use to get a NetworkInterface object's IP address and name?

read, close

what methods does any subclass of inputStream need to overwrite?

write, flush, close

what methods does any subclass of writer need to overwrite

query

what part of the URI http://www.powels.com/cgi-bin/biblio?inkey=62-1634645-0 is ?inkey=62-1634645-0

path

what part of the URI http://www.powels.com/cgi-bin/biblio?inkey=62-1634645-0 is cgi-bin/biblio

scheme

what part of the URI http://www.powels.com/cgi-bin/biblio?inkey=62-1634645-0 is http

authority

what part of the URI http://www.powels.com/cgi-bin/biblio?inkey=62-1634645-0 is www.powels.com

static factory methods

what returns the NetworkInterface object associated with a particular network interface? These can be asked for by IP address, name, and enumeration

checkConnect

what security manager method can test if a host can be rescheduled?

content type, content length

what two fields does a HTTP header include

http, file

what two protocols are the only ones available in all virtual machines?

read only

what type of access do these methods give to parts of a URL? getField() getHost() getPort() getProtocol() getRef() getQuery() getPath() getUserInfo() getAuthority()

low priority

what type of priority do background threads and long tasks get?

instance variables

what type of variables have problems with synchronization?

Streams are synchronous

when a thread asks a stream to read or write a piece of data, it waits for the data to be read or written before it does anything else

A ___ client connects to one of several central servers and requests directory information for a person or persons

whois

43

whois tcp

java.util.Collections

wrap maps and lists use the thread safe version of ___.___.___. (new Collections.synchronized(foo)) This is only thread safe if you do not access the underlying data structure directly.

What is OutputStream's fundamental method?

write

Which Writer method is used to write to a stream?

write

outputStream

write() close() and flush() methods in filters work with

Standard OutputStream Methods

write(), close(), flush(),

OutputStream's fundamental method is

write(int b)

OutputStream's fundamental method

write(int b) -Although this method takes an int as an argument, it actually writes an unsigned byte

outputStream write methods

write(int b) write(byte [] data) write(byte [] data, int offset, int lengths) writes an int 0-255's corresponding byte to the stream

Success This means the action was successfully received, understood, and accepted.

2XX

INFO

3

returns a single value character as an int with a value from 0 to 65545 (or -1)

read()

the basic method of InputStream is the noargs ___ method

read()

InputStream fundamental methods to read data as raw bytes

read() skip() available() close()

basic method to read from InputStream?

read() no args

byte, int

read() reads a _____ and returns an _____

Standard InputStream Methods

read(), close(), available()

InetAddress.getByName()

This method does not merely set a private String field in the InetAddress class. It actually makes a connection to the local DNS server to look up the name and the numeric address You can also do a reverse lookup by IP address. For example, if you want the hostname for the address 208.201.239.100, pass the dotted quad address to InetAddress.getByName(): InetAddress address = InetAddress.getByName("208.201.239.100"); System.out.println(address.getHostName());

notifyAll

This method notifies all threads waiting on an object.

Blocking

This method of indicating a thread is ready to pause can: wait or a non-held resource block while waiting for data to arrive block when entering a synchronized method. wait for a lock to be released will not release any locks held

Yielding

This method of indicating a thread is ready to pause: must be done explicitly make sure that the thread and objects are in a consistent state make sure it's not synchronized does not release locks

getByInetAddress()

This method returns a NetworkInterface object representing the network interface bound to the specified IP address.

getByName()

This method returns a NetworkInterface object representing the network interface with the particular name.

getNetworkInterfaces()

This method returns a java.util.Enumeration listing all the network interfaces on the local host.

getDisplayName()

This method returns a more human-friendly name for the particular NetworkInterface object.

getInetAddresses()

This method returns an Enumeration with all or a subset of the InetAddresses bound to this network interface. A java.util.Enumeration containing an InetAddress object for each IP address the interface is bound to

notify

This method wakes one thread waiting on an object.

What does this code do? int bytesRead = 0; int bytesToRead = 1024; byte[ ] input = new byte[bytesToRead]; while (bytesRead < bytesToRead) { bytesRead += in.read(input, bytesRead, bytesToRead - bytesRead); if (result == -1) break; // end of stream bytesRead += result; }

This places all the bytes in a loop that reads until the array is filled. If there was an interruption, then the return value will be -1, so the break is necessary to prevent an infinite loop.

What does invoking the close( ) method do?

This releases and resources associated with the stream, such as handles or ports.

what is a thread an instance object of?

java.lang.Thread

Java 5 Cookie implementaion

java.net.CookieHandler defines an API for storing and retrieving cookies. This API does not include implementation of the abstract class so there is alot of writing work to do if you want to use it.

Before Java will store and return cookies, you need to enable the ___ class and ___ subclass.

java.net.CookieManager CookieHandler Code: CookieManager manager = new CookieManager(); CookieHandler.setDefault(manager);

Java 6 Cookie implementation

java.net.CookieManager is a subclass of CookieHandler that was added in Java 6. It is not turned on by default but is at least built out and not just an abstract.

The ___ class is Java's high-level representation of an IP address, both IPv4 and IPv6.

java.net.InetAddress

What is Java's high level representation of an IP address?

java.net.InetAddress

Which class is Java's high-level representation of an IP address?

java.net.InetAddress

hostname

java.net.InetAddress converts an IP address to a ___

URL

what does static classLoader.getSystemResource(String name) return?

performance penalty

what does synchronize carry in quite a few VMs?

I/O in Java is built on

Streams

What is IO in Java built upon?

Streams

What IS a good solution to a race condition?

Synchronization

In Java 6 and earlier, what is the best way to close the stream?

The best way to close a stream in Java 6 and earlier is the finally block.

From the socket server how do you determine if you need authentication on the first handshake?

setUseClientMode();

What port(s) is Telnet?

23

Which is the default port for telnet?

23

Telnet

23 TCP Used for interactive, remote command-line sessions.

Smtp

25 TCP The Simple Mail Transfer Protocol is used to send email between machines.

Dict

2628 TCP A UTF-8 encoded dictionary service that provides definitions of words.

Configure the URLConnection

3

Node

A single device on a network - Any machine on a network.

A starvation problem

A starvation problem can be hard to spot if you're developing on a VM that uses preemptive thread scheduling. Just because the problem doesn't arise on your machine doesn't mean it won't arise on your customers' machines if their VMs use cooperative thread scheduling. Most current virtual machines use preemptive thread scheduling, but some older virtual machines are cooperatively scheduled, and you may also encounter cooperative scheduling in special-purpose Java virtual machines such as for embedded environments.

1XX

Informational

1xx

Informational

Define the HTTP Response Code: 1XX Series

Informational

What reads data in Java?

InputStream

Most important Reader subclass

InputStreamReader

What are the most important concrete subclasses for the Read and Writer

InputStreamReader and OutputStreamWriter

most important concrete subclasses of Reader and Writer are the

InputStreamReader and OutputStreamWriter

The most important concrete sub classes of Reader and Writer are?

InputStreamReader and the OutputStreamWriter classes. An InputStreamReader contains an underlying input stream from which it reads raw bytes. It translates these bytes into Unicode characters according to a specified encoding. An OutputStreamWriter receives Unicode characters from a running program. It then translates those characters into bytes using a specified encoding and writes the bytes onto an underlying output stream.

When should a thread not sleep?

Inside a synchronized method or block.

if the proxy requires a user name and password

Install an Authenticator

Which of the following is an important step in writing to a file?

Instantiate OutputStream's child class FileOutputStream

507

Insufficient Storage

How does a Proxy Server help improve load times?

Local Caching - Stores files (temporarily) that are from commonly accessed sites in effort to reduce load on internet connection and improve load times.

Synchronization Alternatives

Local variables are created with each instantiation of a class or method so they are a good way to ensure that resources aren't being shared. Method types of primitives are also safe from modification because java passes arguments by value and not reference.

Sleeping threads keep all the ___ they took from the CPU, which can be an issue.

Locks

___ is a Callable that parses a logfile entry, looks up a single address, and replaces that address with the corresponding hostname.

LookupTask

TCP Traffic Classes

Low Cost, High Reliability, Maximum Throughput, Minimum Delay

getContentType() returns

MIME type null if not available text/html is the most common

All these constructors throw a ___ if you try to create a URL for an unsupported protocol or if the URL is syntactically incorrect.

MalformedURLException

URL

Methods to retrieve data from ___: inputStream openStream() URLConnection openConnection() URLConnection openConnection(proxy proxy) Object getContent() Object getContent(Class [] classes)

Who creates most of the protocols?

Most are created by the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C).

301

Moved Permanently

Define the HTTP Response Code: 301

Moved Permanently

302

Moved Temporarily

300

Multiple choices

What is on port 119?

NNTP is on port 119. Usenet news transfers aka "Network News Transfer Protocol".

How the local address seen and routed from outside the network?

Network Address Translation

511

Network Authentication Required

A programmer wants to use a factory method to return a NetworkInterface object and then use a getter method to return all the IP addresses of that object. Which code should be used?

NetworkInterface foo = NetworkInterface.getByName("eth1"); Enumeration fooAddresses = foo.getInetAddresses();

204

No Content

Does the Java core networking API support explicit peer-to-peer communications?

No, it does not support explicit peer-to-peer communications.

Is it secure to create an InetAddress object from a hostname?

No, it is considered insecure to create an InetAddress object from a hostname because it requires a DNS lookup which could potentially be spoofed.

Which term refers to each device connected to a network?

Node

203

Non-Authoritative Information

COPY & MOVE

Non-standard methods that Java will not send.

Proxy servers

Normally operate at the application layer.

Firewalls

Normally operate at transport or internet layers.

501

Not Implemented

304

Not Modified

Thread Priorities

Not all operating systems support 11 different priorities. For instance, Windows only has 7. On Windows, priorities 1 and 2, 3 and 4, 6 and 7, and 8 and 9 are treated equally (e.g., a priority 9 thread will not necessarily preempt a priority 8 thread).

Thread priority quirk

Not all operating systems support 11 different priorities. For instance, Windows only has 7. On Windows, priorities 1 and 2, 3 and 4, 6 and 7, and 8 and 9 are treated equally (e.g., a priority 9 thread will not necessarily preempt a priority 8 thread).

Define the HTTP Response Code: 404

Not found

StringBuilder

Not immutable, can be changed after they are created.

200

OK

Once ___ is turned on, any urgent data that arrives will be placed on the socket's input stream to be read in the usual way.

OOBINLINE

Which option is set to true for receiving urgent data inline with regular data from the socket?

OOBINLINE

The ___ request method asks what options are supported for a particular URL. If the request URL is an asterisk (*), the request applies to the server as a whole rather than to one particular URL on the server.

OPTIONS

A specific routing protocol quickly identifies changes within the network to find the fastest route and distributes this information to all routers on the segment. Which routing protocol is being described?

OSPF

Acts as a go between with the outside world and the firewall and PC.

Proxy

Which device will allow a company to hide internal IPs before they leave the network boundary?

Proxy

bypass all proxy servers

Proxy.NO_PROXY

Which are types of proxies?

Proxy.Type.DIRECT Proxy.Type.SOCKS Proxy.Type.HTTP

types of proxy java undestands

Proxy.Type.SOCKS Proxy.Type.HTTP Proxy.Type.DIRECT

each virtual machine has exactly one ___ To change the ___, pass the new selector to the static ___.setDefault() method.

ProxySelector

Using Threads

Q: When using threads, getting the correct results can depend on which of the following factors: How many CPUs the system uses The speed of the CPU How many threads the program spawns The algorithm the Java virtual machine uses to allot time to different threads

Internet Standards

RFC 1112 The internet layer methods by which conforming systems can direct a single packet of data to multiple hosts. This is called multicasting. Java's support for multicasting is discussed in Chapter 13. RFC 868 An application layer protocol that sends the time in seconds since midnight, January 1, 1900, to a client connecting over TCP or UDP. The time is sent as a machine-readable, 32-bit unsigned integer. The standard is incomplete in that it does not specify how the integer is encoded in 32 bits, but in practice a big-endian integer is used. RFC 864 An application layer protocol that sends an indefinite sequence of ASCII characters to any client that connects over either TCP or UDP; also useful as a debugging tool. RFC 867 An application layer protocol that sends a human-readable ASCII string indicating the current date and time at the server to any client that connects over TCP or UDP. This contrasts with the various NTP and Time Server protocols, which do not return data that can be easily read by humans. RFC 5000 Describes the standardization process and the current status of the different Internet protocols. Periodically updated in new RFCs.

What is the RFC for URI data?

RFC 2397

What is the RFC for HTTP?

RFC 2616 (1.1) or RFC 1945 (1.0)

What is the RFC code for URI syntax?

RFC 3986

What describes the standardization process and the current status of different Internet protocols?

RFC 5000

What is the RFC code for the official internet standards?

RFC 5000

What is the official Internet Protocol Standards?

RFC 5000

What is the RFC code for echo?

RFC 862

IETF standards are published as what?

RFC(s)

RIP

RIP prevents routing loops by implementing a limit on the number of hops allowed in a path from source to destination. The maximum number of hops allowed for RIP is 15, which limits the size of networks that RIP can support.

when two or more threads can access shared data and they try to change it at the same time

Race condition

InputStream & OutputStream

Read and write bytes singly.

What does the Java.io.InputStream mirror?

Reader class

What is never used directly but only through subclasses?

Reader class

What is this code doing? public static String getMacCyrillicString(InputStream in) throws IOException { InputStreamReader r = new InputStreamReader(in, "MacCyrillic"); StringBuilder sb = new StringBuilder(); int c; while ((c = r.read()) != -1) sb.append((char) c); return sb.toString(); }

Reading an input stream and converting it all to one Unicode string.

OutputStreamWriter

Receives characters from a Java program and converts these into bytes according to a specified encoding and writes them onto an underlying output stream.

3xx

Redirection

What does the 3XX line of HTTP response codes mean?

Redirection 300 - Multiple Choice 301 - Moved Permanently 302 - Moved Temporarily 303 - See Other 304 - Not Modified 305 - Use Proxy 307 - Temporary Redirect 308 - Permanent Redirect

Define the HTTP Response Code: 3XX series

Redirection and Relocation

3XX

Relocation & Redirection

logging levels

SEVERE (highest value) WARNING INFO CONFIG FINE FINER FINEST (lowest value) In addition there is a level OFF that can be used to turn off logging

Which of the following protocols is used to transfer email between servers or between a mail client and a server?

SMTP

What signifies the end of the stream?

Returning -1

SSLSocketFactory.getDefault()

Returns an instance of the SSL Socket Factory which is the encrypted version of a Socket. You would then use the .createSocket("", #) method to return an actual usable socket.

What protocol is on port 25?

SMTP is on port 25. It is used to send email between machines.

In the PasswordAuthentication class the username and password are defined as

String userName, char[] password

Unlike Strings ___ arguments are not safe because they're not immutable.

StringBuilder

TelnetOutputStream

Subclass of OutputStream is used to write data onto a network connection

TelnetOutputStream

Subclass of OutputStream is used to write data onto a network connection - uses these methods to write data onto a network connection

2xx

Success

Define the HTTP Response Code: 2XX Series

Success

What does the 2XX line of HTTP response codes mean?

Successful 200 - OK 201 - CREATED 202 - Accepted 203 - Non-Authoritative information 204 - No content 205 - Reset Content 226 - IM used

101

Switching Protocols

"Once one thread starts printing out the values, all other threads will have to stop and wait for it to finish before they can print out their values." What is this describing?

Synchronization

Which is true about synchronization?

Synchronization can lead to deadlocks

When should synchronization be considered?

Synchronization should be considered any time multiple threads share resources.

Which is more reliable UDP or TCP?

TCP

Internet Message Access Protocol (IMAP) (RFC 3501)

TCP 143

Border Gateway Protocol (BGP)

TCP 179

Secure Shell (SSH) (RFC 4250-4256)

TCP 22

Telnet (RFC 854)

TCP 23

Hypertext Transfer Protocol over SSL/TLS (HTTPS)

TCP 443

Java supported protocols

TCP and UDP only.

Which of the following is set to true for ensuring that packets are sent as quickly as possible regardless of their size?

TCP_NODELAY

Setting ___ to true ensures that packets are sent as quickly as possible regardless of their size.

TCP_NODELAY public void setTcpNoDelay(boolean on) throws SocketException public boolean getTcpNoDelay() throws SocketException

The ___ request method sends the HTTP header that the server received from the client.

TRACE

Which request method in setRequestMethod(string method) sends the HTTP header that the server received from the client?

TRACE.

BufferedReader

Take text from the buffer rather than directly from the underlying input stream or other text source

What protocol is on port 23?

Telnet. It is used for interactive remote command line sessions. Isn't secure.

Which subclass of OutputStream is used to write data onto a network connection?

TelnetOutputStream

307

Temporary Redirect

What is returned if the address you used .getByName("args"); on does not have a hostname?

The "args" you supplied will be returned so for example if you passed 72.30.16.42 in, that would be returned back if that address had no hostname.

what does the / at the beginning of a relative URL specify?

The / specifies relative to the document root not the current directory.

java.io.Reader specifies?

The API by which characters are read. Wherever input and output streams use bytes, readers and writers use Unicode characters.

java.io.Writer specifies?

The API by which characters are written. Wherever input and output streams use bytes, readers and writers use Unicode characters.

Which model stores large quantities of data on high powered comptuers and puts most of the program logic on cheap computers?

The Client/Server Model

isClosed() vs isBound() vs isConnected()

The isClosed() method returns true if the socket is closed, false if it isn't. However, this is not a perfect test. If the socket has never been connected in the first place, isClosed() returns false, even though the socket isn't exactly open. isBound() method tells you whether the socket successfully bound to the outgoing port on the local system. isConnected() refers to the remote end of the socket, isBound() refers to the local end. isConnected() tells you whether the socket has ever been connected to a remote host.

isInputShutdown() and isOutputShutdown()

The isInputShutdown() and isOutputShutdown() methods tell you whether the input and output streams are open or closed, respectively. You can use these (rather than isConnected() and isClosed()) to more specifically ascertain whether you can read from or write to a socket.

Authenticator class

The java.net package includes an Authenticator class you can use to provide a username and password for sites that protect themselves using HTTP authentication.

flush() method

breaks the deadlock by forcing the buffered stream to send its data even if the buffer isn't yet full

if more than one object wants the result of a calculation, the thread can keep a list of objects to ___ ___.

call back

one

each instance of a main class maps to only ___ file and can keep track of information about that particular file without needing an additional data structure. This makes it thread safe.

Unable to see from outside the network?

non-routable addresses 10.x.x.x; 172.16.x.x <-> 172.31.x.x; 192.168.x.x;

Which is used to determine if the input stream is open?

public boolean isInputShutdown()

Which is used to determine if the URI is hierarchical or non-hierarchical?

public boolean isOpaque()

The URL class also has a _______ method that checks whether two URLs point to the same resource

sameFile()

URI syntax

scheme : scheme-specific-part : fragment

CONFIG

4

4 layer TCP/IP network model

Application Transport Internet Host to Network

4XX

Client Error

TRACE

Echos back the client request for debugging purposes.

What describes the role of a client?

Initiate communication

What is the HTTP response code 200?

It is an OK code.

412

Precondition Failed

Input Streams

Read data

429

Too Many Requests

305

Use Proxy

Output streams

Write data

Can synchronization lead to deadlocks?

Yes

\r\n

a network server uses this to terminate a line

if the DNS cant find the address

an UnknownHostException is thrown (subclass of IOException)

79

finger tcp

disconnect

public abstract void ___() closes any open streams

URI Syntax

scheme:scheme-specific-part

25

smtp tcp

Encodes the string itself in a variant of the UTF-8 encoding of Unicode.

writeUTF()

what method includes the length of the string

writeUTF()

Given https://www.company.com/current/sfs/index.html?isbn=44322#toc What is the hostname?

www.company.com

What represents 0x in UTF-8?

%

to connect a server to a different port... telnet uses port 23 by default

$ telnet localhost 25

Which type of system is relatively cheaper, and only stores the content it needs at the time?

(the) Client

server lifecycle

* a new serversocket is created *the ServerSocket listens for incoming connection using the accept() method *GetInputStrean and/or GetOutputStream are called accordingly *server and client interact according to agreed-upon protocol until time to close the connection *server, client or both close the connection * server returns to step 2

the URI class

*** an URI object can represent a relative URI *** is purely about identification of resources *** is more conformant to the relevant specifications

How do you look up the address of a specific website?

*Note: This method does not merely set a private String field in the InetAddress class. It actually makes a connection to the local DNS server to look up the name and the numeric address.

URL components

*scheme a.k.a. protocol *authority *path *fragment identifier a.k.a. ref *query string

Advantages of Packets

- Checksums allow check for data corruption

What are the differences between URL and URLConnection?

- URLConnection provides access to the HTTP header. - URLConnection can configure the request parameters sent to the server. - URLConnection can write data to the server as well as read data from the server.

relative URL

- URLs that aren't complete but inherit pieces from their parent - any pieces that are missing are assumed to be the same as the corresponding pieces from the URL of the document in which the URL is found - example, suppose that while browsing http://www.ibiblio.org/javafaq/javatutorial. html you click on this hyperlink: <a href="javafaq.html">

public URLConnection openConnection() throws IOException

- You should use this method when you want to communicate directly with the server. - The openConnection() method opens a socket to the specified URL and returns a URLConnection object. A URLConnection represents an open connection to a network resource. If the call fails, openConnection() throws an IOException. For example: try { URL u = new URL("https://news.ycombinator.com/"); try { URLConnection uc = u.openConnection(); InputStream in = uc.getInputStream(); // read from the connection... } catch (IOException ex) { System.err.println(ex); } } catch (MalformedURLException ex) { System.err.println(ex); }

URL u1 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#GS"); URL u2 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#HD"); if (u1.sameFile(u2)) { System.out.println(u1 + " is the same file as \n" + u2); } else { System.out.println(u1 + " is not the same file as \n" + u2); }

- a fragment of code that uses sameFile() to compare two URLs - The output is: http://www.ncsa.uiuc.edu/HTMLPrimer.html#GS is the same file as http://www.ncsa.uiuc.edu/HTMLPrimer.html#HD

The HandshakeCompletedEvent class provides four methods for getting information about the event:

- public SSLSession getSession( ) - public String getCipherSuite( ) - public X509Certificate[ ] getPeerCertificateChain( ) throws SSLPeerUnverifiedException - public SSLSocket getSocket( )

If there is no Content-length header, getContentLength() returns a value of:

-1

If there is no port specified in the URL path, getPort( ) will return a value of

-1

What will be returned by the getContentLength() method if there is no content-length header?

-1

getContentLength() returns ___ if there is no content-length heather

-1

the read() method returns what at the end of the stream?

-1

isMulticastAddress()

-IPv6: starts with FF -IPv4: 224.0.0.0 -> 239.255.255.255

cookiePolicy

.ACCEPT_ALL .ACCEPT_NONE .ACCEPT_ORIGINAL_SERVER

By passing ___ for the local port number, I say that I don't care which port is used but I do want to use the network interface bound to the local hostname I specified.

0

The ideal number of entries in an error log is

0

Construct a URL object

1

SEVERE

1

What number is assigned to MIN_PRIORITY?

1

URL Connection sequence

1 Construct a URL object 2 Invoke the URL;s object openConnection() method to retreive a URLConnection object for that URL. 3 Configure the connection 4 Read the header fields 5 Get an input stream and read data 6 Get an output stream and write data 7 Close the connection

minimum steps needed to retrieve data from an URL

1 Construct an URL object 2 Invoke the URL;s object openConnection() method to retreive a URLConnection object for that URL. 3 Invoke the URLConnection;s getInputStrem() method 4 Read from the input stream using the usual stream API

What port numbers are for well known services?

1 to 1023

What are the steps for utilizing a URLConnection?

1) Construct a URL object. 2) Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. 3) Configure the URLConnection. 4) Read the header fields. 5) Get an input stream and read data. 6) Get an output stream and write data. 7) Close the connection.

What are the steps to retrieve data from a URL using a URLConnection?

1) Construct a URL object. 2) Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. 3) Invoke the URLConnection's getInputStream() method. 4) Read from the input stream using the usual stream API.

server object lifecycle

1) a new serverSocket is created on a port using the ServerSocket() constructor 2) Server socket listens for incoming connection attempts with accept() accept returns a server object that connects the client to the server 3)depending on the type of server, one two or both methods are called getInputStream() getOutputStream() 4)server and client interact according to agreed upon protocol until connection is called to close 5)server, client, or both close the connection 6)server sleeps to wait for the new client connection

deadlock problems

1)two threads need exclusive access to the same set of resources. Each thread holds the lock of a different subset of those resources.

1. What are the 4 Timeout methods? 2. What is the exception thrown for these methods?

1. public void setConnectTimeout(int timeout) public int getConnectTimeout( ) public void setReadTimeout(int timeout) public int getReadTimeout( ) 2. SocketTimeoutException

What are the 4 steps needed to retrieve data from a URL using a URLConnection object?

1. Construct a URL object. 2. Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. 3. Invoke the URLConnection's getInputStream() method. 4. Read from the input stream using the usual stream API.

What are the 7 steps to constructing a URLConnection?

1. Construct a URL object. 2. Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. 3. Configure the URLConnection. 4. Read the header fields. 5. Get an input stream and read data. 6. Get an output stream and write data. 7. Close the connection.

steps in a HTTP Connection

1. the client opens a TCP connection to the server (port80 by default) 2. the client sends a message to the server requesting a resource at the specified path 3. The server send a response to the client 4. The server closes the connection

What number is assigned to MAX_PRIORITY?

10

pause

10 ways a thread can ___ or indicate that it is ready to ___: block on I/O yield wait on an object finish suspend block on a synchronized object sleep join another thread be preempted by a higher priority thread stop

What are the non-routable IP Addresses?

10.x.x.x; 172.16.x.x to 172.31.x.x; 192.168.x.x; Local host - 127.0.0.1

Internet Codes

100 continue 200 ok 300 multiple classes 403 forbidden 404 not found 501 not implemented

POP3

110 TCP Post Office Protocol version 3 is a protocol for the transfer of accumulated email from the host to sporadically connected clients.

NNTP

119 TCP Usenet news transfer; more formally known as the "Network News Transfer Protocol."

A daytime server listens on port __

13

Daytime

13 TCP/UDP Provides an ASCII representation of the current time on the server.

IMAP

143 TCP Internet Message Access Protocol is a protocol for accessing mailboxes stored on a server.

how many parameters does the base write method of java.io.outputStream take?

3 (char[] text, int offset, int length)

Infomational This means request received and continuing process.

1XX

HTTP response codes

1XX Infomational This means request received and continuing process. 2XX Success This means the action was successfully received, understood, and accepted. 3XX Redirection This means further action must be taken in order to complete the request. 4XX Client Error This means the request contains bad syntax or cannot be fulfilled. 401 Unauthorized If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. 403 - Forbidden The server understood the request, but is refusing to fulfill it. 5XX Server Error The server failed to fulfill an apparently valid request.

Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL

2

WARNING

2

how many protected constructors does java.io.outputStream have?

2

For BufferedInputStream/BufferedOutputStream the buffer size is set to __ bytes for an input stream and bytes for an __output stream

2,048, 512

FTP data

20 TCP FTP uses two well-known ports. This port is used to transfer files.

What port(s) is FTP?

20,21

Which address is an IPv4?

209.117.62.36:8080

Which port does FTP use by default?

21

FTP

21 TCP This port is used to send FTP commands like put and get.

What port(s) is SSH?

22

SSH

22 TCP Used for encrypted, remote logins.

Time

37 TCP/UDP A ______ server returns the number of seconds that have elapsed on the server since midnight, January 1, 1900, as a four-byte, unsigned, big-endian integer.

Redirection This means further action must be taken in order to complete the request.

3XX

Read the header fields

4

Which code and message will be displayed when the server understood the request, but is deliberately refusing to process it?

403 Forbidden

Whois

43 TCP A simple directory service for Internet network administrators.

Given https://www.company.com/current/sfs/index.html?isbn=44322#toc What is the port number?

443. HTTPS runs on 443 by default.

Client Error This means the request contains bad syntax or cannot be fulfilled.

4XX

FINE

5

Get an input stream and read data

5

What number is assigned to NORM_PRIORITY?

5

The operating system stores incoming connection requests addressed to a particular port in a first-in, first-out queue. By default, Java sets the length of this queue to __

50

What is the maximum queue length for incoming connection requests?

50

java allows up to ____ connections

50

Which of the following response code refers to the error produced by the server when it failed to fulfill an apparently valid request?

5XX

FINER

6

Get an output stream and read data

6

How many total ports exist?

65535

Close the connection

7

Echo

7

FINEST

7

Finger

79 TCP A service that returns information about a user or users on the local system.

IPv6

8 blocks of 4 hex digits separated by colons

Which TCP port does the HTTP protocol use by default?

80

HTTP

80 TCP The underlying protocol of the World Wide Web.

BufferedReader and BufferedWriter default buffer size

8192 Characters

Discard

9 TCP/UDP a less useful test protocol in which all data received by the server is ignored.

PrintStream has

9 overload print() methods and 10 overload println() methods

Java use

90% Application layer 10% Transport layer

How much of your coding time will be spent in the Application layer?

90% of your coding in Java Network code is spent in the Application layer

Difference between URI and URL

A URI (Uniform Resource Identifier) is a string that identifies a resource. A URL (Uniform Resource Locator) gives a location to a resource and may or may not identify it.

The URI Class

A URI is a generalization of a URL that includes not only Uniform Resource Locators but also Uniform Resource Names (URNs). Most URIs used in practice are URLs, but most specifications and standards such as XML are defined in terms of URIs. In Java, URIs are represented by the java.net.URI class.

What is the biggest difference between a URI and a URL?

A URI tells you *what* the resource is, a URL tells you what the resource is AND GIVES YOU A PATH TO GET IT. It's the difference between the title "Harry Potter and The Deathly Hallows" and "Harry Potter and The Deathly Hallows at the Chicago Public Library on 35th and Halsted; located in room 312, Row 28, Shelf 7".

What is a URL?

A URL is a URI that, as well as identifying a resource, provides a specific network location for the resource that a client can use to retrieve a representation of that resource.

public final Object getContent(Class[] classes) throws IOException

A URL's content handler may provide different views of a resource. This overloaded variant of the getContent() method lets you choose which class you'd like the content to be returned as. The method attempts to return the URL's content in the first available format.

URI vs URL

A Uniform Resource Identifier (URI) is a string of characters in a particular syntax that identifies a resource. scheme:scheme-specific-part A URL is a URI that, as well as identifying a resource, provides a specific network location for the resource that a client can use to retrieve a representation of that resource. protocol://userInfo@host:port/path?query#fragment

urn

A Uniform Resource Name

Server Program Life Cycle

A new ServerSocket is created on a particular port using a ServerSocket() constructor. The ServerSocket listens for incoming connection attempts on that port using its accept() method. accept() blocks until a client attempts to make a connection, at which point accept() returns a Socket object connecting the client and the server. Depending on the type of server, either the Socket's getInputStream() method, getOutputStream() method, or both are called to get input and output streams that communicate with the client. The server and the client interact according to an agreed-upon protocol until it is time to close the connection. The server, the client, or both close the connection. The server returns to step 2 and waits for the next connection.

Which is true about the assumption of cached pages?

A page accessed with GET over HTTP can and should be cached, and a page accessed with HTTPS or POST usually shouldn't be cached

What is an anonymous port?

A port chosen by the system at runtime

Preemptive thread scheduler

A preemptive thread scheduler determines when a thread has had its fair share of CPU time, pauses that thread, and then hands off control of the CPU to a different thread.

preemptive vs cooperative scheduling

A preemptive thread scheduler determines when a thread has had its fair share of CPU time, pauses that thread, and then hands off control of the CPU to a different thread. A cooperative thread scheduler waits for the running thread to pause itself before handing off control of the CPU to a different thread. A virtual machine that uses cooperative thread scheduling is much more susceptible to thread starvation than a virtual machine that uses preemptive thread scheduling, because one high-priority, uncooperative thread can hog an entire CPU.

Process vs Thread

A process is an executing instance of an application. When you double-click the Microsoft Word icon, you start a process that runs Word. A thread is a path of execution within a process. Also, a process can contain multiple threads. When you start Word, the operating system creates a process and begins executing the primary thread of that process.

Initial state:

A program has created a thread's thread object, but the thread does not yet exist because the thread object's start() method has not yet been called

What device allows a company to hide internal IPs before they leave the network boundary?

A proxy lets a company hide internal IPs before they leave the network.

What is a thread?

A separate, independent path of execution in the virtual machine

Address

A sequence of bytes that uniquely identifies a node on the network.

What is the difference between big 'T' and little 't'?

A thread with a little t is a separate, independent path of execution in the virtual machine. A Thread with a capital T is an instance of the java.lang.Thread class.

javax.net.*

A user logs into the e-mail client via the web GUI using the username and password. The user wants to ensure that credentials are not easily obtainable by sniffing network traffic.

Synchronization

A way to assign exclusive access to a shared resource to a single thread for a specific series of statements.

The part of the URL that precedes the query string is given by the value of which attribute of the FORM element?

ACTION

The part of the URL that precedes the query string is given the value of which attribute of the FORM element?

ACTION is the FORM element that gives the value of the part of the URL that precedes the query string.

The InputStreamReader and OutputStreamWriter classes:

Act as decorators on top of input and output streams that change the interface from a byte-oriented interface to a character-oriented interface. Once this is done, additional character-oriented filters can be layered on top of the reader or writer using the java.io.FilterReader and java.io.FilterWriter classes.

HEAD

Acts like a GET except it only returns the header for the resource.

What type of thread scheduling does java use?

All Java virtual machines are guaranteed to use preemptive thread scheduling between priorities. That is, if a lower-priority thread is running when a higher-priority thread becomes ready to run, the virtual machine will sooner or later (and probably sooner) pause the lower-priority thread to allow the higher-priority thread to run. The higher-priority thread preempts the lower-priority thread.

Preemption

All Java virtual machines are guaranteed to use preemptive thread scheduling between priorities. That is, if a lower-priority thread is running when a higher-priority thread becomes ready to run, the virtual machine will sooner or later (and probably sooner) pause the lower-priority thread to allow the higher-priority thread to run. The higher-priority thread preempts the lower-priority thread. There are 10 ways a thread can pause in favor of other threads or indicate that it is ready to pause. These are: It can block on I/O. It can block on a synchronized object. It can yield. It can go to sleep. It can join another thread. It can wait on an object. It can finish. It can be preempted by a higher-priority thread. It can be suspended. It can stop.

DataOutputStream offers 11 methods

All data is written in big-endian format (binary)

ARIN

American Registry for Internet Numbers

What is URLConnection?

An abstract class that represents an active connection to a resource specified by a URL. The provides more control over the interaction with a server (especially an HTTP server) than the URL class. Second, the class is part of Java's protocol handler mechanism, which also includes the URLStreamHandler class. The idea behind protocol handlers is simple: they separate the details of processing a protocol from processing particular data types, providing user interfaces, and doing the other work that a monolithic web browser performs.

The flow of data through a chain of filters

Application Text InputStreamReader (buffered data) GzipInputStream (buffered, compressed data) CipherInputStream (buffered, compressed, encrypted data) BufferedInputStream (raw compressed, encrypted data) TelnetInputStream (raw compressed, encrypted data) Network

What layer delivers data to the user?

Application (Layer)

Layer closest to user?

Application (layer)

What layer decides what to do with the data?

Application (layer)

Layers of a Network

Application Layer - defines how a particular network interface-such as an Ethernet card or a WiFi antenna-sends IP datagrams over its physical connection to the local network and the world. Transport Layer (TCP, UDP) - defines how a particular network interface-such as an Ethernet card or a WiFi antenna-sends IP datagrams over its physical connection to the local network and the world. Internet Layer (IP) - defines how a particular network interface-such as an Ethernet card or a WiFi antenna-sends IP datagrams over its physical connection to the local network and the world. Host-To-Network (Ethernet, Wifi, LTE) - defines how a particular network interface-such as an Ethernet card or a WiFi antenna-sends IP datagrams over its physical connection to the local network and the world.

BufferedReader and BufferedWriter

Are the character-based equivalents of the byte-oriented BufferedInputStream and BufferedOutputStream classes. Where BufferedInputStream and BufferedOutputStream use an internal array of bytes as a buffer, BufferedReader and BufferedWriter use an internal array of chars.

Which class is not a subclass of Writer? ArrayWriter / FileWriter / OutputStreamWriter / BufferedWriter

ArrayWriter

How much data is transferred from server to client after the initial request?

Aside from the initial request for a page, almost all data is transferred from the server to the client

What does ARIN do?

Assigns ISP addresses

What does ICANN do?

Assigns Internet registries (ARIN) addresses

Which of the following logs contains one entry for each connection made to the server?

Audit

Classes used for HTTP authentication

Authenticator class The java.net package includes an Authenticator class you can use to provide a username and password for sites that protect themselves using HTTP authentication. PasswordAuthentication class The PasswordAuthentication class is a very simple final class that supports two read-only properties: username and password. The username is a String. The password is a char array so that the password can be erased when it's no longer needed. JPasswordField class The JPasswordField class is a lightweight component that allows the editing of a single line of text where the view indicates something was typed, but does not show the original characters.

To make the URL class use the authentication subclass, install it as the default authenticator by passing it to the static ___ method:

Authenticator.setDefault( )

Most important technique for preventing deadlock.

Avoid unnecessary synchronization.

BGP

BGP (Border Gateway Protocol) is a protocol for exchanging routing information between gateway hosts (each with its own router) in a network of autonomous systems. BGP is often the protocol used between gateway hosts on the Internet.

502

Bad Gateway

400

Bad Request

public String getAuthority()

Between the scheme and the path of a URL, you'll find the authority. This part of the URI indicates the authority that resolves the resource. In the most general case, the authority includes the user info, the host, and the port. For example, in the URL ftp://mp3:[email protected]:21000/c%3a/, the authority is mp3:[email protected]:21000, the user info is mp3:mp3, the host is 138.247.121.61, and the port is 21000. However, not all URLs have all parts. For instance, in the URL http://conferences.oreilly.com/java/speakers/, the authority is simply the hostname conferences. oreilly.com. The getAuthority() method returns the authority as it exists in the URL, with or without the user info and port.

Expedited Forwarding EF

Binary value 101110

A ___ is thrown if you try to construct a Socket or ServerSocket object on a local port that is in use or that you do not have sufficient privileges to use

BindException

What occurs any time a thread has to stop and wait for a resource it doesn't have?

Blocking

What occurs any time a thread has to stop and wait for a resource?

Blocking

Thread vs Runnable Synchronization

Both have the same concerns with synchronization and must consider synchronizing when their threads are operating on a shared resource.

What does the close() method shuts down for a socket?

Both input and output

Peer-to-peer

Both remote processes are executing at same level and they exchange data using some shared resource

What stores written data until it is full or flushed?

BufferedOutputStream

What is used to take text from the buffer rather than directly from the underlying input stream or the other text source?

BufferedReader

Which class makes reading data much faster?

BufferedReader

Which is used to take text from the buffer rather than directly from the underlying input stream or other text source?

BufferedReader

What is the line of code performing? URL u1 = new URL(""http://www.abc.com/javafaq/index.html""); URL u2 = new URL (u1, ""mailinglists.html"");

Builds an absolute URL from a relative URL and a base URL

Methods to read InputStream?

ByteArrayInputStream() FileInputStream() TelnetInputStream()

Which of the following is not a child class of InputStream? ByteArrayInputStream / FileInputStream / TelnetInputStream / ByteInputStream

ByteInputStream

What is a way the DNS attempts to save time for looking up data?

Caching

The ___ class allows you to add, remove, and list cookies so you can control the cookies that are sent outside the normal flow of HTTP requests and responses.

CookieStore

How do you store cookies locally?

CookieStore allows you to add, remove, and list cookies so that you can control the cookies that are sent outside the normal flow of HTTP requests and responses.

Cookie Limit

Cookies are limited to nonwhitespace ASCII text and may not contain commas or semicolons.

201

Created

What is performed with the following lines of code? SocketFactory factory = SSLSocketFactory.getDefault(); Socket socket = factory.createSocket(""login.ibiblio.org"", 7000);

Creates a secure client socket

The ___ method removes a resource from a specified URL.

DELETE

setUseClientMode()

DETERMINES whether this socket needs to do authentication in its first handshake

Packet Switched

Data Traveling on the network is broken into chunks called packets, each packet is handled separately.

What happens with a buffer write?

Data is written to the buffer instead of the underlying output stream

The ___ and ___ classes provide methods for reading and writing Java's primitive data types and strings in a binary format.

DataInputStream

readLine( ) is a popular method that is taken from the ___ class.

DataInputStream

What reads and writes in binary format?

DataInputStream() and DataOutputStream()

What is the condition in which two threads are stopped because each is waiting for a resources that the other has?

Deadlock

What occurs when two threads need exclusive access to the same set of resources and each thread holds the lock on a different subset of those resources?

Deadlock

___ occurs when two threads need exclusive access to the same set of resources and each thread holds the lock on a different subset of those resources

Deadlock

How do you make an object immutable and by proxy, thread safe?

Declare all fields private and final and don't write any methods that can change them.

Common DSCP values and interpretations

Default 00000 Best-effort traffic. Expedited Forwarding (EF) 101110 Low-loss, low-delay, low-jitter traffic. Often limited to 30% or less of network capacity. Assured Forwarding (AF) multiple Assured delivery up to a specified rate. Class Selector xxx000 Backward compatibility with the IPv4 TOS header, as stored in the first three bits.

NORM_PRIORITY

Default priority of a thread is 5

What should be chained to an output stream to convert an int to bytes and write those bytes to an underlying output stream?

Filter streams should be chained to an output stream to convert an int to bytes and write those bytes to an underlying output stream.

Filter Chains

Filters can be linked together to manipulate or interpret raw data.

Which of the following is used to filter traffic entering or exiting a network?

Firewall

What is responsible for inspecting each packet that passes into or out of its network interface and accepting or rejecting it according to a set of rules?

Firewall(s)

Define the HTTP Response Code: 403

Forbidden

TCP/IP

Four layer model

Hosts

Fully functional computer node

The ___ method retrieves a representation of a resource.

GET

When writing Java code to communicate with a server, using the POST method returns an error. Which URL method should be used instead?

GET

When writing Java code to communicate with a server, using the POST method returns an error. Which URL method should be used instead?

GET

pages accessed with the ___ method should be cached

GET

when you set doOutput to true for an http URL, the request method is changed from ___ to POST

GET

For example, adding an item to a shopping cart should send a ___, because this action doesn't commit; the user can still abandon the cart. However, placing the order should send a ___ because that action makes a commitment, which requires a resubmission if you reload that webpage.

GET POST

HttpURLConnection methods

GET POST HEAD PUT DELETE OPTIONS TRACE

Which are HTTP methods?

GET POST PUT

What are the four main HTTP methods?

GET POST PUT DELETE

HTTP Methods

GET PUT DELETE POST The other two that Java supports are OPTIONS, which lets the client ask the server what it can do with a specified resource; and TRACE, which echoes back the client request for debugging purposes, especially when proxy servers are misbehaving. Different servers recognize other nonstandard methods including COPY and MOVE, but Java does not send these.

HTTP Methods

GET The GET method retrieves a representation of a resource. PUT The PUT method replaces all current representations of the target resource with the uploaded content. DELETE The DELETE method removes a resource from a specified URL. POST The POST method uploads a representation of a resource to a server at a known URL. The other two that Java supports are OPTIONS, which lets the client ask the server what it can do with a specified resource; and TRACE, which echoes back the client request for debugging purposes, especially when proxy servers are misbehaving. Different servers recognize other nonstandard methods including COPY and MOVE, but Java does not send these.

When writing Java code to communicate with a server, using the POST method returns and error. What URL method should be used instead?

GET should be used instead of POST.

504

Gateway Timeout

410

Gone

Once connected to the server, which request will check to see if a web document has been modified since the document was last cached?

HEAD

Which HTTP method will you use to check whether the copy stored in the local cache is still valid or not?

HEAD

505

HTTP Version Not Supported

What is RFC 1945?

HTTP. Application layer protocol used by web browsers.

What is on port 80?

HTTP. It is the underlying protocol of the world wide web.

405

HTTP_BAD_METHOD

408

HTTP_CLIENT_TIMEOUT

403

HTTP_FORBIDDEN

406

HTTP_NOT_ACCEPTABLE

404

HTTP_NOT_FOUND

402

HTTP_PAYMENT_REQUIRED

401

HTTP_UNAUTHORIZED

Which interface is implemented for getting notifications of handshake-complete events?

HandshakeCompletedListener

interface implemented for getting notifications of handshake-completed events

HandshakeCompletedListener

Which of the following is NOT a way to wake up a thread? timeout expires / interrupt the thread / have another thread join it / notify the object

Have another thread join it

Which of the following is NOT a way to have a thread pause? sleep / yield / join / preempt

Have it preempt another thread

Thread Safe Collections rule

If you invoke collections.synchronizedSet, List or Map, you must not ever reference the original set, list or map again because if you do, the original object and the newly invoked object via Collections.Syncronized... will also be thread unsafe.

What exception does setNeedClientAuth() throw?

IllegalArgumentException

Which of the following exceptions is thrown by the setNeedClientAuth() method if socket is not on the server side?

IllegalArgumentException

setAllowUserInteraction() when the URLConnection is connected throws an

IllegalStateException

How do you gain fined-grained control of cookie management?

Implement the CookiePolicy interface into your class and override the shouldAccept() method.

Finally Block

In Java 6 and earlier, what is the best way to close the stream?

asymmetric encryption

In asymmetric encryption, the public key is used to encrypt the data and the private key is used to decrypt the data.

multithreaded servers

In what type of server do java programs should spawn a thread to interact with the client so that the other clients don't have to wait.

create a new InetAdress object

InetAddress addr1 = InetAddress.getByName("www.google.com");

What is the code to do a reverse lookup of an IP address, and print it?

InetAddress address = InetAddress.getByName("208.201.239.100"); System.out.println(address.getHostName());

How do you do a reverse address lookup in Java for 216.58.192.174?

InetAddress address = InetAddress.getByName("216.58.192.174"); System.out.println(address.getHostName());

How do you look up the address of google.com in Java?

InetAddress address = InetAddress.getByName("www.google.com");

There are no corresponding setHostName() and setAddress() methods for InetAddress, which means:

InetAddress is immutable.

check the latency to a particular host

InetAddress.isReachable()

Proxy Class

It allows more fine-grained control of proxy servers from within a Java program. Specifically, it allows you to choose different proxy servers for different remote hosts. The proxies themselves are represented by instances of the java.net.Proxy class. There are still only three kinds of proxies, HTTP, SOCKS, and direct connections (no proxy at all), represented by three constants in the Proxy.Type enum: Proxy.Type.DIRECT Proxy.Type.HTTP Proxy.Type.SOCKS Besides its type, the other important piece of information about a proxy is its address and port, given as a SocketAddress object. For example, this code fragment creates a Proxy object representing an HTTP proxy server on port 80 of proxy.example.com: SocketAddress address = new InetSocketAddress("proxy.example.com", 80); Proxy proxy = new Proxy(Proxy.Type.HTTP, address);

What is the advantage of breaking data into packets?

It allows packets to be checked for damages in transit using checksums.

What are RFC 1034 and 1035?

It are the Domain Name System. Defines how DNS servers on different hosts communicate with each other.

What are RFC 854 and 855?

It are the telnet protocols. It is an insecure remote login service for command-line environments.

What is a packet-switched network?

It breaks data down into chunks called packets and each packet is handled separately when moving across the network.

10 ways a thread can pause in favor of other threads or indicate that it is ready to pause.

It can block on I/O. It can block on a synchronized object. It can yield. It can go to sleep. It can join another thread. It can wait on an object. It can finish. It can be preempted by a higher-priority thread. It can be suspended. It can stop.

Which is a way a thread can pause in favor of other threads or indicate that it is ready to pause?

It can yield It can go to sleep It can join another thread It can be preempted by a higher-priority thread

What is the host-to-network layer?

It defines how a particular network interface such as an Ethernet card sends IP datagrams over its physical connection to the local network and world. The physical layer made up of wires, fiber, radio waves, etc. is also part of it. For programmers, the only time you need to think about this layer would be for performance.

What is the Internet layer?

It defines how packets are organized, the addressing scheme, the routing of packets, and to enable different types of host-to-network layers to talk to each other such as translating between Ethernet and DSL.

What is the application layer?

It delivers data to the user. It decides what to do with the data after it is transferred.

What does yielding not do?

It does not release any locks the thread holds.

Which is a characteristic of the Java core networking API?

It does not support explicit peer-to-peer communications

what does .showdown() do to an ExecutorService pool?

It does not terminate processing, it just signals the Executor that no further tasks will be added to the queue and that it should shut down when finished.

How does Java deal with Peer-To-Peer?

It doesn't inherently support Peer-To-Peer networking

what does .shutdownNow() do to an ExecutorService pool?

It ends work immediately.

What class does java.net.URL extend?

It extends java.lang.Object and is a final class that cannot be subclassed.

Why is flushing an important step in writing to a BufferedOutputStream?

It forces the stream to print the buffer

PrintStream's mostly unique feature

It internally synchronizes most methods on the PrintStream object. Most other subclasses of OutputStream don't internally synchronize.

What is the Java.net.InetAddress class?

It is Java's high-level representation of an IP address both IPv4 and IPv6.

What does an Expires header specify?

It is OK to cache this representation until the specified time

What is the HTTP response code 100?

It is a continue response code. The server is prepared to accept the request body and the client should send it. Allows clients to ask if the server will accept large amounts of data before the client sends it.

JPasswordField class

It is a lightweight component that allows the editing of a single line of text where the view indicates something was typed, but does not show the original characters.

What is a node?

It is a machine on a network. Most nodes are computers, but printers, routers, bridges, gateways, household "smart" appliances, etc. can all be nodes.

What does public void write(byte[] a) do?

It is a method that will allow Java to store IP addresses in an array by using an output stream.

What is a protocol?

It is a precise set of rules defining how computers communicate i.e. the format of addresses, how to split data into packets, etc.

BGP ()

It is a protocol for exchanging routing information between gateway hosts (each with its own router) in a network of autonomous systems. BGP is often the protocol used between gateway hosts on the Internet.

What is an address?

It is a sequence of bytes that uniquely identifies a node on a network.

PasswordAuthentication class

It is a very simple final class that supports two read-only properties: username and password. The username is a String. The password is a char array so that the password can be erased when it's no longer needed.

What is the Client/Server Model?

It is an application typically stores large quantities of data on a server or cloud of servers while the program logic/user interface is handled by the client software running on personal computers.

What is the HTTP response code 503?

It is the service unavailable response code. The server is temporarily unable to handle the request.

What is UDP?

It is an unreliable protocol used when where it doesn't matter if all the packets arrive or arrive in the same order. UDP doesn't verify if everything arrived or not and thus reduces overhead. This is quite frequently used for things like video.

What is this code doing? URL u1 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#GS"); URL u2 = new URL("http://www.ncsa.uiuc.edu/HTMLPrimer.html#HD"); if (u1.sameFile(u2)) { System.out.println(u1 + " is the same file as \n" + u2); } else { System.out.println(u1 + " is not the same file as \n" + u2); }

It is comparing two URL's to see if they point to the same resource. *Note: The output is: http://www.ncsa.uiuc.edu/HTMLPrimer.html#GS is the same file as http://www.ncsa.uiuc.edu/HTMLPrimer.html#HD

PrintStream

It is evil and network programmers should avoid it like the plague!

Why is polling not a good solution to a race condition?

It is not guaranteed to work

What is TCP?

It is placed on top of the IP to give each end of the connection the ability to acknowledge receipt of IP packets and request retransmission of lost of or corrupted packets. Furthermore, it allows packets to be put back in the correct order. It carries a fair amount of overhead though.

URI Class

It is purely about identification of resources and parsing of URIs. It provides no methods to retrieve a representation of the resource identified by its URI. The URI class is more conformant to the relevant specifications than the URL class. A URI object can represent a relative URI. The URL class absolutizes all URIs before storing them.

What is the transport layer?

It is responsible for ensuring that packets are received in the order they were sent and that no data is lost or corrupted. The two primary protocols are TCP and UDP.

What is DNS?

It is the Domain Name System. DNS associates hostnames that can be more easily remembered (e.g. google.com) with IP addresses that computers can remember.

What is RFC 792?

It is the Internet Control Message Protocol. It is an internet layer protocol that uses raw IP datagrams but is not supported by Java. Used for ping and traceroute.

What is RFC 5000?

It is the Internet Official Protocol Standards. Describes the standardization process of the different Internet Protocols.

What is RFC 977?

It is the Network News Transfer Protocol. It is an application layer protocol by which Usenet new is transferred from machine to machine.

What is RFC 1939?

It is the Post Office Protocol v 3. And application layer protocol used by sporadically connected email clients such as Eudora.

What is RFC 768?

It is the User Datagram Protocol. It's an unreliable, connectionless transport layer protocol.

What is the HTTP response code 202?

It is the accepted code. It indicates that a request is being processed.

What is preemption?

It is the act of temporarily interrupting a task being carried out by a computer system, without requiring its cooperation, and with the intention of resuming the task at a later time. Such a change is known as a context switch. An example would be a thread being paused and hands off control of the CPU to a different thread.

What is the HTTP response code 400?

It is the bad request response code. The client's request to the server used improper syntax.

What is the HTTP response code 201?

It is the created code. The server has created a resource at the specified URL.

What is RFC 959?

It is the file transfer protocol. Optionally authenticated application layer protocol.

What is the HTTP response code 403?

It is the forbidden code. The server understands the request, but it refuses to process it.

What is the HTTP response code 500?

It is the internal server error response code. Server doesn't know how to handle a condition.

What is a port?

It is the logical connection point for the transmission of information packets. It does not represent anything physical. It is merely an abstraction of a computer's memory. This allows computers to do many different things at once.

What is the HTTP response code 301?

It is the moved permanently code. The resource has permanently moved to a new URL.

What is the HTTP response code 302?

It is the moved temporarily response code. The resource is at a new URL temporarily, but it's location will change again in the foreseeable future.

What is the HTTP response code 204?

It is the no content code. The server processed the request but has no information to send.

What is the HTTP response code 404?

It is the not found response code. The server cannot find the requested resource.

What is the HTTP response code 501?

It is the not implemented response code. Server doesn't have the feature needed to process this request.

asymmetric encryption

It is the public key used to encrypt the data and the private key is used to decrypt the data.

What is a callback?

It is when you allow the thread to call its creator back when it is done. This way the main program can go to sleep while waiting for the threads to finish and not steal time from the running threads.

What does this code do, and what would the output be? import java.io.*; import java.net.*; public class URLPrinter { public static void main(String[] args) { try { URL u = new URL("http://www.oreilly.com/"); URLConnection uc = u.openConnection(); System.out.println(uc.getURL()); } catch (IOException ex) { System.err.println(ex); } } }

It opens a connection with http://www.oreilly.com, gets the URL of the connection, and prints it. % java URLPrinter http://www.oreilly.com/

RIP

It prevents routing loops by implementing a limit on the number of hops allowed in a path from source to destination. The maximum number of hops allowed for RIP is 15, which limits the size of networks that RIP can support.

Purposes of the URLConnection class

It provides more control over the interaction with a server (especially an HTTP server) than the URL class It is part of Java's protocol handler mechanism, which also includes the URLStreamHandler class

Purposes of the URLConnection class

It provides more control over the interaction with a server (especially an HTTP server) than the URL class The URLConnection class is part of Java's protocol handler mechanism, which also includes the URLStreamHandler class

Which are purposes of the URLConnection class?

It provides more control over the interaction with a server (especially an HTTP server) than the URL class The URLConnection class is part of Java's protocol handler mechanism, which also includes the URLStreamHandler class

NetworkInterface class

It represents a local IP address. This can either be a physical interface such as an additional Ethernet card (common on firewalls and routers) or it can be a virtual interface bound to the same physical hardware as the machine's other IP addresses. The NetworkInterface class provides methods to enumerate all the local addresses, regardless of interface, and to create InetAddress objects from them. These InetAddress objects can then be used to create sockets, server sockets, and so forth. getByInetAddress() getNetworkInterfaces getInetAddresses() getByName() getDisplayName()

What does getByInetAddress() return?

It returns a Network Interface object representing the network interface bound to the specified IP address.

What does the following method of the NetworkInterface class do? getByInetAddress()

It returns a NetworkInterface object representing the network interface bound to the specified IP address.

What does the following method of the NetworkInterface class do? getByName()

It returns a NetworkInterface object representing the network interface with a particular name.

NetworkInterface foo = NetworkInterface.getByName("eth1"); Enumeration fooAddresses = foo.getInetAddresses(); What does this code do?

It returns a NetworkInterface object then gets all of the IP addresses of that object and stores them in fooAddresses.

What does NetworkInterface's getInetAddress() method return?

It returns a java.util.Enumeration containing an InetAddress object for each IP address the interface is bound to.

What does the following method of the NetworkInterface class do? getNetworkInterfaces()

It returns a java.util.Enumeration listing all the network interfaces on the local host.

What does the following method of the NetworkInterface class do? getDisplayName()

It returns a more human-friendly name for the particular NetworkInterface object.

What does the following method of the NetworkInterface class do? getInetAddresses()

It returns an Enumeration with all or a subset of the InetAddresses bound to this network interface.

getContentType()

It returns the MIME media type of the response body.

getLastModified()

It returns the date on which the document was last modified.

getContentLength()

It tells how many bytes there are in the content.

Which port does FTP use be default?

It uses port 21 by default.

What does an original thread do when a reader thread notifies a ManifestFile?

It wakes up and continues when a reader thread notifies a ManifestFile.

What is the Internet Protocol (IP)?

It was developed to allow multiple routes between any two points and to route packets of data around damaged routers. It also needed to be platform independent.

t.setPriority(15) will result in what?

It will result in an IllegalArgumentException because the thread class only has priorities ranging from 1 to 10 with 10 being the highest.

A Java programmer wants to use AES256 for the secure socket connections between the client and the server. What must be installed to support AES256?

Java Cryptography Extension (JCE)

A Java programmer wants to use AES256 for the secure socket connections between the client and the server. What must be installed to support AES256?

Java Cryptography Extension (JCE)

What must be installed to support AES256?

Java Cryptography Extension (JCE)

What should you do if the URL protocl you need isn't supported in your particular Java VM?

Java may have an additional protocol handler that you can download for the scheme you need. However, IRL, don't use this method, go find an API that can will work.

How long does Java cache unsuccessful DNS queries?

Java only caches unsuccessful queries for 10 seconds. This is because it is common for requests to time out.

Which protocols does Java support?

Java only supports TCP, UDP and the application protocols built on top of those.

What classes does Java use to distinguish between IPv4 and IPv6 addresses?

Java uses Inet4Address and Inet6Address in order to distinguish between IPv4 and IPv6 addresses.

Inet4Address and Inet6Address

Java uses two classes, Inet4Address and Inet6Address, in order to distinguish IPv4 addresses from IPv6 addresses: Inet4Address overrides several of the methods in InetAddress but doesn't change their behavior in any public way. Inet6Address is similar, but it does add one new method not present in the superclass, isIPv4CompatibleAddress.

java.net.InetAddress

Java's high level representation of an IP addres, both IPv4 and IPv6

Used to process numeric addresses and their corresponding host names.

Java.net.InetAddress class

a client indicates that it's willing to reuse a socket by including a Connection field in the HTTP request header with

Keep-Alive

under no conditions you should read or write to anything other than the

LAST filter in the chain

Failure to close a stream in a long-running program can?

Leak file handles, network ports, and other resources.

411

Length Required

OPTIONS

Lets the client ask the server what it can do with a specified resource.

URL Uniform Resource Locator

Like a URI, in addition provides network location for the resource

Synchronized Block

Like a try block but following this pattern: synchronized (arg) {} where arg is the synchronized object. For example, you could use System.out as the arg.

A specific routing protocol quickly identifies changes within the network to find the fastest route and distributes this information to all routers on the segment. Which routing protocol is being described?

OSPF

Which routing protocol quickly identifies changes within the network to find the fastest route and distributes information to all routers on the segment?

OSPF.

11001100.11010011.00100110.00110100

Observe the given IP address: 204.211.38.52

InetAddress[] address = InetAddress.getAllByName("www.company.org");

Observe the given code statement: InetAddress address = InetAddress.getByName("www.company.org"); If the hostname has more than one address, which code should replace this line?

The array will only read the bytes available and then wait.

Observe the given code: int binitread = 0; int bleftread = 512; byte[] input = new byte[bleftread]; while(binitread < bleftread){ binitread += in.read(input,binitread, bleftread - binitread); } What happens if there is less than 512 bytes of data available from the input stream?

Why are string arguments safe from deadlock?

Once created, a string object is immutable.

Terminating state:

Once execution leaves a thread's run() method, that thread is in the ________ state, that is... the thread ceases to exist.

How many URL cache does Java allow at a time?

One

Each virtual machine has exactly ___ ProxySelector. To change the Proxy Selector, pass the new selector to the static ___ method.

One ProxySelector.setDefault( )

Client-Server

One remote process acts as a Client and requests some resource from another application process acting as Server.

What does this code do? Socket socket = new Socket("dict.org", 2628); socket.setSoTimeout(15000);

Opens a socket to a dictionary server and sets a timeout in case the server hangs.

What receives characters from a Java program and converts these into bytes according to a specified encoding and writes them onto an underlying output stream?

OutpuStreamWriter.

What writes data in Java?

OutputStream

How would you write to the client?

OutputStream out = connection.getOutputStream(); Writer writer = new OutputStream(writer, "ASCII"); Date now = new Date(); out.write(now.toString() + "\r\n"); out.flush(); connection.close();

What converts characters to bytes according to specified encoding?

OutputStreamWriter

What is the most important concrete subclass of writer?

OutputStreamWriter

Which receives characters from a Java program and converts these into bytes according to a specified encoding and writes them onto an underlying output stream?

OutputStreamWriter

Writer's most important subclass?

OutputStreamWriter

toExternalForm()

Outside of print statements, it's more proper to use toExternalForm() instead: public String toExternalForm() The toExternalForm() method converts a URL object to a string that can be used in an HTML link or a web browser's Open URL dialog. The toExternalForm() method returns a human-readable String representing the URL. It is identical to the toString() method. In fact, all the toString() method does is return toExternalForm().

A subclass of Writer must?

Overwrite at least write(char[] text, int offset, int length), flush() and close().

What MIME subtype would be used for images?

PNG, JPG, GIF

AutoCloseable

Post java 6, you can declare autoclosable objects in the try block's argument list and they will auto-close when the try block ends. In java 6 and earlier, you should close using a finally block after your catch block.

Where is the ACTION attribute of the FORM element placed?

Precedes the query string

428

Precondition Required

Which term is used to describe a thread that has its allotted CPU time, pauses the thread, and then hands off control of the CPU to a different thread?

Preemption

What is the primary reason to code in the Host-To-Network layer?

Primary reason to code in Host-To-Network layer is to update performance.

What stream is System.out part of?

PrintStream

Evil.. should be avoided like the plague

PrintStream's println() is platform-dependent PrintStream assumes default encoding PrintStream eats all exceptions

Filter Readers And Writers

PrintWriter It prints formatted representations of objects to a text-output stream. PushbackReader It allows characters to be inserted or pushed back into the stream. BufferedReader It reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. LineNumberReader It is a buffered character-input stream that keeps track of line numbers. BufferedWriter It writes text to a character-output stream, buffering characters so as to provide for the efficient writing of single characters, arrays, and strings.

Filter Readers And Writers

PrintWriter It prints formatted representations of objects to a text-output stream. PushbackReader It allows characters to be inserted or pushed back into the stream. BufferedReader It reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. LineNumberReader It is a buffered character-input stream that keeps track of line numbers. BufferedWriter It writes text to a character-output stream, buffering characters so as to provide for the efficient writing of single characters, arrays, and strings.

New code should use PrintWriter instead of PrintStream because?

PrintWriter properly handles multibyte character sets and international text. PrintWriter class has an almost identical collection of methods to PrintStream.

A programmer has been advised by the security department to report whenever a user is denied connectivity to a server because failed authentication is considered to be high risk. Which lines of code will the programmer need to add to trigger an alert of the high risk activity?

Private final static logger userAudit = logger.getLogger("userLogins"); catch(Exception z){useraudit.log(Level.SEVERE, "DOS", z);}

trigger an alert of the high risk activity

Private final static logger userAudit = logger.getLogger("userLogins"); catch(Exception z){useraudit.log(Level.SEVERE, "DOS", z);}

A set of rules defining how computers communicate with each other.

Protocol

URL Syntax

Protocol://userInfo@host:port/path?query#fragment

413

Request Entity Too Large

431

Request Header Fields Too Large

2XX

Request Succeeded

414

Request URI Too Long

416

Requested Range Not Satisfiable

205

Reset Content

Finally, you need a simple ___ subclass that stores and retrieves the cached values as requested while paying attention to the original Cache-control header.

ResponseCache

To install or change the cache, use the static _______ method.

ResponseCache.setDefault()

Transport layer

Responsible for ensuring packets are received in order and no data is lost or corrupted. TCP reliable protocol UDP unreliable protocol

GET

Retrieves a representation of a resource.

What does the 5XX line of HTTP response codes mean?

Server Error 500 - Internal Server Error 501 - Not Implemented 502 - Bad Gateway 503 - Service Unavailable 504 - Gateway Input 505 - HTTP Version not supported 507 - Insufficient storage 511 - Network Authentication Required

Define the HTTP Response Code: 5XX series

Server side error

Which Java class is used to represent server sockets?

ServerSocket

How would you construct a Server object?

ServerSocket server = new ServerSocket(13);

503

Service Unavailable

Define the HTTP Response Code: 503

Service unavailable

InetAddress addresses = InetAddress.getByName(ip); System.out.println(address.getHostName()); What is being printed out here?

The DNS resolution is being printed out by this code.

public String getUserInfo()

Some URLs include usernames and occasionally even password information. This information comes after the scheme and before the host; an @ symbol delimits it. For instance, in the URL http://[email protected]/, the user info is elharo. Some URLs also include passwords in the user info. For instance, in the URL ftp:// mp3:[email protected]/c%3a/stuff/mp3/, the user info is mp3:secret. However, most of the time, including a password in a URL is a security risk. If the URL doesn't have any user info, getUserInfo() returns null.

write, flush, close

Standard OutputStream Methods

What is this code doing? Thread t = new Thread(); t.start();

Starting a new thread running in the virtual machine.

What is the best practice in preventing against a man-in-the-middle attack?

Store and verify their public with a trusted third-party certification authority

To URL encode a string, pass the string and the character set name to the ___ method. For example, using plus signs, the code would look something like:

String encoded = URLEncoder.encode("This+string+has+plus+signs", "UTF-8");

NetworkInterface class

The NetworkInterface class represents a local IP address. This can either be a physical interface such as an additional Ethernet card (common on firewalls and routers) or it can be a virtual interface bound to the same physical hardware as the machine's other IP addresses. The NetworkInterface class provides methods to enumerate all the local addresses, regardless of interface, and to create InetAddress objects from them. These InetAddress objects can then be used to create sockets, server sockets, and so forth. getByInetAddress() This method returns a NetworkInterface object representing the network interface bound to the specified IP address. getNetworkInterfaces This method returns a java.util.Enumeration listing all the network interfaces on the local host. getInetAddresses() This method returns an Enumeration with all or a subset of the InetAddresses bound to this network interface. getByName() This method returns a NetworkInterface object representing the network interface with the particular name. getDisplayName() This method returns a more human-friendly name for the particular NetworkInterface object.

PasswordAuthentication class

The PasswordAuthentication class is a very simple final class that supports two read-only properties: username and password. The username is a String. The password is a char array so that the password can be erased when it's no longer needed.

Proxy Class

The Proxy class allows more fine-grained control of proxy servers from within a Java program. Specifically, it allows you to choose different proxy servers for different remote hosts. The proxies themselves are represented by instances of the java.net.Proxy class. There are still only three kinds of proxies, HTTP, SOCKS, and direct connections (no proxy at all), represented by three constants in the Proxy.Type enum: Proxy.Type.DIRECT Proxy.Type.HTTP Proxy.Type.SOCKS Besides its type, the other important piece of information about a proxy is its address and port, given as a SocketAddress object. For example, this code fragment creates a Proxy object representing an HTTP proxy server on port 80 of proxy.example.com: SocketAddress address = new InetSocketAddress("proxy.example.com", 80); Proxy proxy = new Proxy(Proxy.Type.HTTP, address);

toString() method

The String produced by toString() is always an absolute URL, such as http://www.cafeaulait.org/javatutorial. html. It's uncommon to call toString() explicitly. Print statements call to String() implicitly

ways that the URI class differs from the URL class

The URI class is more conformant to the relevant specifications than the URL class A URI object can represent a relative URI. The URL class absolutizes all URIs before storing them The URI class is purely about identification of resources and parsing of URIs

URI class differs from the URL class

The URI class is purely about identification of resources and parsing of URIs A URI object can represent a relative URI. The URL class absolutizes all URIs before storing The URI class is more conformant to the relevant specifications than the URL class

Which are ways that the URI class differs from the URL class?

The URI class is purely about identification of resources and parsing of URIs The URI class is more conformant to the relevant specifications than the URL class A URI object can represent a relative URI. The URL class absolutizes all URIs before storing them

URI Class

The URI class is purely about identification of resources and parsing of URIs. It provides no methods to retrieve a representation of the resource identified by its URI. The URI class is more conformant to the relevant specifications than the URL class. A URI object can represent a relative URI. The URL class absolutizes all URIs before storing them.

What is the end result of this code? URI absolute = new URI("http://www.example.com/images/logo.png"); URI top = new URI("http://www.example.com/"); URI relative = top.relativize(absolute);

The URI object relative now contains the relative URI images/logo.png.

equals() and hashCode() methods

The URL class contains the usual ________. These behave almost as you'd expect. Two URLs are considered equal if and only if both URLs point to the same resource on the same host, port, and path, with the same fragment identifier and query string. However there is one surprise here. The equals() method actually tries to resolve the host with DNS so that, for example, it can tell that http:// www.ibiblio.org/ and http://ibiblio.org/ are the same.

What type of method does Java's URL class use for communications with HTTP servers?

The URL class uses the GET method.

result of running this against several of the URL examples in this chapter: % java URLSplitter \ ftp://mp3:[email protected]:21000/c%3a/ \ http://www.oreilly.com \ http://www.ibiblio.org/nywc/compositions.phtml?category=Piano \ http://[email protected]:8080/ \

The URL is ftp://mp3:[email protected]:21000/c%3a/ The scheme is ftp The user info is mp3:mp3 The host is 138.247.121.61 The port is 21000 The path is /c%3a/ The ref is null The query string is null The URL is http://www.oreilly.com The scheme is http The user info is null The host is www.oreilly.com The port is -1 The path is The ref is null The query string is null The URL is http://www.ibiblio.org/nywc/compositions.phtml?category=Piano The scheme is http The user info is null The host is www.ibiblio.org The port is -1 The path is /nywc/compositions.phtml The ref is null The query string is category=Piano The URL is http://[email protected]:8080/ The scheme is http The user info is admin The host is www.blackstar.com The port is 8080 The path is / The ref is null The query string is null</programlisting>

Writer Synchronization

The Writer classes all have their own internal synchronization, which protects one thread from interfering with a write() method in another thread. (This is not true of input and output streams, with the exception of PrintStream.

javax.net.ssl

The abstract classes that define Java's API for secure network communication. (This package provides classes for the secure socket package.)

Javax.net

The abstract socket factory classes used instead of constructors to create secure sockets. (This package provides classes for networking applications. These classes include factories for creating sockets.)

What does the following code print? public class MSByName { public static void main ( String [] args ) { InetAddress address = InetAddress . getByName ( "" www . microsoft . com "" ); System . out . println ( address ); } catch ( UnknownHostException ex ) { System . out . println ( "" Could not find www . microsoft . com "" ); }}

The address of www.microsoft.com

Authority

The authority responsible for resolving a URI request, usually the FQDN. (e.g. google.com, youtube.com, facebook.com)

What is this code doing? public void calculateDigest() { ListCallbackDigest cb = new ListCallbackDigest(filename); cb.addDigestListener(this); Thread t = new Thread(cb); t.setPriority(8); t.start(); }

The calculateDigest() method sets the priority of each spawned thread to 8.

java.security.cert

The classes for handling the public-key certificates needed for SSL. (This package provides classes and interfaces for parsing and managing certificates, certificate revocation lists (CRLs), and certification paths.)

What describes the role of the client?

The client initiates communication.

Sending request from client to server

The client opens a TCP connection to the server on port 80, by default; other ports may be specified in the URL. The client sends a message to the server requesting the resource at a specified path. The request includes a header, and optionally (depending on the nature of the request) a blank line followed by data for the request. The server sends a response to the client. The response begins with a response code, followed by a header full of metadata, a blank line, and the requested document or an error message. The server closes the connection.

Which of the following will be the next step after the client opens a TCP connection to the server on port 80?

The client sends the message to the server requesting the resource at a specified path.

What does invoking the close() method do for streams?

The close() method releases resources for streams.

public boolean sameFile(URL other)

The comparison is essentially the same as with equals(), DNS queries included, except that sameFile() does not consider the fragment identifier. This sameFile() returns true when comparing http://www.oreilly.com/index.html#p1 and http://www.oreilly. com/index.html#q2 while equals() would return false.

com.sun.net.ssl

The concrete classes that implement the encryption algorithms and protocols in SUn's reference implementation of the JSSE. (This package provides classes that implement the encryption algorithms and protocols in Sun's reference implementation of the JSSE.)

Scheme-Specific-Part

The contents of a URI string (e.g. //youtube.com, //[email protected], //pbay.org/the-complete-works-of-shakespeare.torrent)

What protocol is on port 13?

The daytime protocol. It provides ASCII representation of the current time on the server.

What happens if no encoding is specified?

The default platform encoding is used

What protocol is on port 8?

The discard protocol is on port 8. It is a less useful test protocol where data received by the server is ignored.

What protocol is on port 7?

The echo protocol. It is a test protocol used to verify that two machines are able to connect by having one echo the other's input.

What are 3 problems with using PrintStream?

The first problem is that the output from println( ) is platform dependent. The second problem is that PrintStream assumes the default encoding of the platform on which it's running. The third problem is that PrintStream eats all exceptions. Zero exceptions are or can be thrown. The outdated checkError( ) method needs to be used. Gross.

Server Program Life Cycle

The following stages are involved in basic life cycle of a server program: A new ServerSocket is created on a particular port using a ServerSocket() constructor. The ServerSocket listens for incoming connection attempts on that port using its accept() method. accept() blocks until a client attempts to make a connection, at which point accept() returns a Socket object connecting the client and the server. Depending on the type of server, either the Socket's getInputStream() method, getOutputStream() method, or both are called to get input and output streams that communicate with the client. The server and the client interact according to an agreed-upon protocol until it is time to close the connection. The server, the client, or both close the connection. The server returns to step 2 and waits for the next connection.

getInetAddress() and getPort()

The getInetAddress() and getPort() methods tell you the remote host and port the Socket is connected to; or, if the connection is now closed, which host and port the Socket was connected to when it was connected.

public String getProtocol()

The getProtocol() method returns a String containing the scheme of the URL (e.g., "http", "https", or "file"). For example, this code fragment prints https: URL u = new URL("https://xkcd.com/727/"); System.out.println(u.getProtocol());

What protocol is on port 37?

The time protocol. A time server returns the number of seconds that have elapsed on the server since midnight, January 1, 1900 as a four-byte unsigned, big-endian integer.

Observe the given code statement: try{ Socket s = new Socket(); SocketAddress a = new InetSocketAddress("dropbox.test.com",21); s.connect(a,0); } What does the 0 represent in this socket connection java code?

The timeout is set to wait forever.

try{ Socket s = new Socket(); SocketAddress a = new InetSocketAddress("dropbox.test.com",21); s.connect(a,0); } What does the 0 represent in this socket connection java code?

The timeout is set to wait forever.

MIN_PRIORITY

The value of ______PRIORITY is 1

MAX_PRIORITY

The value of ______PRIORITY is 10

java.util.logging.Level

There are seven levels defined as named constants in descending order of seriousness: Level.SEVERE (highest value) Level.WARNING Level.INFO Level.CONFIG Level.FINE Level.FINER Level.FINEST (lowest value)

java.util.logging.Level

There are seven levels defined as named constants in java.util.logging.Level in descending order of seriousness: Level.SEVERE (highest value) Level.WARNING Level.INFO Level.CONFIG Level.FINE Level.FINER Level.FINEST (lowest value)

dataOutputStream

These write methods belong to ______ write boolean write byte write short write char write int write long write float write double write chars write bytes write UTF

How does peer-to-peer work?

They act as both the client and the server

What can be said about Filter Streams?

They all share (input and output) the same write, close and flush methods as java.io.InputStream and java.io.OutputStream

What are hosts?

They are nodes that are computers.

How are cookies stored inside a CookieStore?

They are stored as objects HttpCookie. Many of the internal methods of HttpCookie are obsolete like comment, comment URL and discard.

What are RFC 2045, 2046, and 2047?

They are the Multipurpose Internet Mail Extensions (MIME). It's a means of encoding binary data and non-ASCII text for transmission through Internet email and other ASCII-oriented protocols.

Place warning, info, config, and finer in order from most serious 1 to least serious 4.

They go from most serious to least serious.

What layer do the protocols TCP and UDP reside in?

They reside in the transport layer.

What is the benefit of sockets to a programmer?

They treat network connections like any other data stream.

RFC 5000

This document is published by the RFC Editor to provide a summary of the current standards protocols (as of 18 February 2008). It lists those official protocol standards, Best Current Practice, and Experimental RFCs that have not been obsoleted; it is not a complete index to the RFC series. Newly published RFCs and RFCs whose status has changed are starred.

Which method should be invoked to start a new thread running in a virtual machine?

Thread t = new Thread(); t.start ();

How do you start a new thread?

Thread t = new Thread(); t.start()

What method should be invoked to start a new thread running in a virtual machine?

Thread t = new Thread(); t.start(); should be invoked to start a new thread running in a virtual machine.

This signals to the virtual machine that it can run another thread if one is ready to run.

Thread.yield( )

Yielding

Thread.yield() - some VMs may ignore this, especially real-time operating systems.

Thread performance vs processes

Threads share memory unlike processes so they are easier on resources. Its about a factor of 3 increase in performance to use threads over processes.

hat is the purpose of threading?

To efficiently use available resources

Thread safe sets

To get a thread safe view of a set, use Collections.synchronizedSet()

You should inspect every run() method for?

To make sure that one of the 10 ways a thread can pause will occur with reasonable frequency.

What is the use of the echo protocol?

To test the network for making sure that data is not destroyed by a faulty router

Which layer is responsible for ensuring that packets are received in the order they were sent and that no data is lost or corrupted?

Transport

Responsible for ensuring that packets are received in the order they were sent and that no data is lost or corrupted

Transport (Layer)

TCP/UDP layer?

Transport (Layer)

Transmission Control Protocol(TCP), is a high-overhead protocol that allows for retransmission of lost of corrupted data and delivery of bytes in the order they were sent. What layer is it on?

Transport (Layer)

User Datagram Protocol(UDP), allows the receiver to detect corrupted packets but does not guarantee that packets are delivered in the correct order(or at all). What layer is it on?

Transport (Layer)

The Java URL class is final

True

URL objects are immutable

True

What can replace a finally{ } call in Java 7+ ?

Try with resources

RFC 768

UDP

Which is a connectionless protocol?

UDP

Which is faster, UDP or TCP?

UDP

Which protocol is used where signal degradation is less noticeable?

UDP

Which is an advantage of UDP over TCP?

UDP is faster than TCP

Which protocols reside in the transport layer?

UDP, TCP

What is a string of characters in a particular syntax that identifies a resource, such as a file on a server, an email address, a news message, a book, a person's name, an Internet host, or other identifier?

URI

How would a URI absolute constructor look differently than a URI relative constructor?

URI absolute = new URI("http", "//www.ibiblio.org" , null); URI relative = new URI(null, "/javafaq/index.shtml", "today");

What would a URI constructor look like for a phone number? A webpage? A book?

URI voice = new URI("tel:+1-800-9988-9938"); URI web = new URI("http://www.xml.com/pub/a/2003/09/17/stax.html#id=_hbc"); URI book = new URI("urn:isbn:1-565-92870-9");

IllegalArgumentException

URI.Create() throws _____

Constructing a URI

URIs are built from strings. You can either pass the entire URI to the constructor in a single string, or the individual pieces:

A ___ is a URI that, as well as identifying a resource, provides a specific network location for the resource that a client can use to retrieve a representation of that resource.

URL

abstract

URL connection classes are _____ (abstract/concrete)

filter readers and writers

bufferedReader bufferedWriter lineNumberReader pushbackReader pushbackWriter are examples of ___ ___ ___ ___?

casting a URLC to HttpURLC

URL u = new URL("http://hellomoto.com"); HttpURLConnection http = (HtttpURLConnection) u.openConnection();

Which line of code would construct a new URL from a string?

URL u = new URL("http://www.abc.com/");

an HTML file to be returned as a String, but your second choice is a Reader and your third choice is an InputStream, write:

URL u = new URL("http://www.nwu.org"); Class<?>[] types = new Class[3]; types[0] = String.class; types[1] = Reader.class; types[2] = InputStream.class; Object o = u.getContent(types); - If the content handler knows how to return a string representation of the resource, then it returns a String. If it doesn't know how to return a string representation of the resource, then it returns a Reader. And if it doesn't know how to present the resource as a reader, then it returns an InputStream.

___ is an abstract class that represents an active connection to a resource specified by a URL

URLConnection

instance

URLConnection has 7 ___ fields: URL url boolean doInput= true boolean doOutput=false boolean allowUserInteraction= defaultAllowUserInteraction boolean useCaches = defaultUseCaches long isModifiedSince = 0 boolean connected = false

guessContentTypeFromStream

URLConnection.___(InputStream in) looks at the first few bytes of data in a connection to guess the content type.

guessContentFromName

URLConnection.___(String Name) uses the extension to guess the file time returns a string looks at content-type properties file

MIME guessing

URLConnection.guessContentTypeFromName() URLConnection.guessContentTypeFromStream()

The corresponding ___ class has a static ___ method that decodes strings encoded in x-www-form-url-encoded format. That is, it converts all plus signs to spaces and all percent escapes to their corresponding character.

URLDecoder decode( )

URL Encoder

URLEncoder.encode(String, Format); Convert a string to the specified encoding.

Are URLs thread safe?

URLs are thread safe and immutable.

Java's native character set

UTF-16

Java's native character set is the

UTF-16 encoding of unicode

451

Unavailable For Legal Reasons

URI

Uniform Resource Identifier.

getByAddress throws the exception ___ only if a byte array of an illegal size (neither 4 nor 16 bytes long) is passed as the address argument.

UnknownHostException

422

Unprocessable Entity

Although OutputStream takes an int as an argument, it actually writes an -

Unsigned byte

415

Unsupported Media Type

426

Upgrade Required

What is an alternative to synchronization?

Use fields instead of local variables whenever possible is an alternative to synchronization.

Which is not an alternative to synchronization?

Use fields instead of local variables wherever possible

Filters are connected to streams

by their constructors

Note: unsolicited submission by a W3C member. Working drafts: reflection of current thinking of some members of a working group. Candidate recommendation: working group has reached a consensus on all major issues. Proposed recommendation: mostly complete and not likely to undergo more than minor changes. Recommendation: highest level and is a work that represents consensus within W3C and has the directors stamp of approval.

W3C 5 basic levels of standards

What is on port 43?

WHOIS. It is a simple directory service for Internet network administrators.

___ releases the lock on the object and pauses until it is notified by some other thread.

Waiting

preemptive, cooperative

What are the two types of thread scheduling?

Initiate communication

What describes the role of a client?

It releases resources.

What does invoking the close() method do for streams?

java.io.OutputStream class

What does the writer class mirror?

ConnectionException

What exception is thrown when a connection is refused at the remote host.

Packets can be checked for damages in transit using checksums.

What is the advantage of breaking data into packets over a network?

To efficiently use available resources

What is the purpose of threading?

synchronized()

What is used to ensure that a single thread is finished before proceeding to the next thread in multi-threading?

Filter streams

What should be chained to an output stream to convert an int to bytes and write those bytes to an underlying output stream?

Waking from sleep is not guaranteed

When a Thread.Sleep() is used, there is no guarantee that the thread will wake on time. When the appointed time comes around, the VM may be too busy to immediately wake the thread. Also, another thread could use interrupt() on the sleeping thread to wake it early.

Blocked state:

When a thread executes the sleep(), wait(), or join() methods, when a thread attempts to read data not yet available from a network, and when a thread waits to acquire a lock, that thread is in the blocked state: it is neither running nor in a position to run

What is a race condition?

When two threads would consume the same resource and it is unclear which thread will claim that resource. - It is an undesirable situation that occurs when a device or system attempts to perform two or more operations at the same time, but because of the nature of the device or system, the operations must be done in the proper sequence to be done correctly.

prefixes

Whois ___: domain gateway group handle or ! expand or * summary or $ host network organization mailbox or @ full or = subdisplay or % person ASN (autonomous system number) name or : partial or suffix.

Once created, a string object is immutable.

Why are string arguments safe from deadlock?

BufferedStreams

Write data to a buffer until it reaches a specified size and then writes to the Stream's target source. Can improve performance.

What can be buffered, either directly or chained to BufferedWriter?

Writers

What is never used directly, but used polymorphically?

Writers

What mirrors the java.io.OutputStream class?

Writers

System.out

Writing to the console through several System.out.print() statements may not finish in one thread prior to the next utilizing System.out which can cause text to become garbled as different threads mix their outputs. - is a PrintStream

Is HTTP closely related to the URLConnection class?

Yes

is java.net.URLConnection abstract?

Yes it is abstract. To implement, you write a subclass.

Is 209:117:62:36:8080 a valid IPv4 address?

Yes,

Does the InetAddress cache results of lookups?

Yes, the InetAddress class caches the result of lookups in an effort to speed up requests.

What does this code demonstrate? public void run() { while (true) { // Do the thread's work... Thread.yield( ); } }

Yielding

Sleeping vs Yielding

Yielding is the process's willingness to pause and let another equal-priority thread run, but sleeping is more powerful. A sleeping thread will pause regardless of weather or not other threads need to operate. Its like stopping at a 4 way stop sign when no one is around. Sleeping threads hold their locks.

Synchronizing a method

You can synchronize a method using 'synchronized' in the method declaration. EX: public synchronized void methodName(){}

How do you build a reference to a NetworkInterface?

You can't arbitrarily create a NetworkInterface object since they can refer to actual hardware. You get a NetworkInterface by using the .getByName(""), getByInetAddress(""), getNetworkInterfaces()

synchronizing their task by using synchronized blocks...

You keep shared resources within this block

What is true about using the GET method?

You need to know the combination of names and values the program expects to receive

What is the problem with assigning too high a priority to a thread?

You run the risk of starving other, lower priority threads.

What is the most common way to create a URLConnection object?

You use the .openConnection() method from the URL object to return a URLConnection for a specific URL.

How do you create a new Object that reperesnts an IP? or an internet address?

You use the InetAddress class, here is an example: InetAddress address = InetAddress.getByName("www.oreilly.com");

echo protocol

___ ___ is to test the network to make sure data is not being destroyed by a faulty router

thread scheduling

___ ___ policies make sure threads get at least some time to run more important things get more time avoid thread starvation assign priorities to threads VM runs the highest priority thread first Java: 10 highest, 0 lowest Unix: 0 highest, 10 lowest

Cache record

___ ___ should contain: timestamp client address specific information about requests if exists exception error

HTTP 2.0

based on SPDY invented by Google, optimizes HTTP transfers through header compression, pipe-lining request responses and asynchronous connection multiplexing

URL

___ connections: provide more control over interaction with a server can inspect header sent by server then respond accordingly set header field using client requests send data back to the web server with POST, PUT, and the like are part of the protocol handler's mechanism, which includes URLStreamHandler classes. Has separate details of processing from data type processing, providing user interfaces and other web browser work.

URL

___ has the following attributes a toString method a toExternalForm form that makes a string for the browser a toURI that throws URISyntaxException

URI

___ has the following attributes is about identifying resources and pausing data is more conformant to relevant specifications URI can represent a relative URI URL absolutizes all URIs before storing them

algorithms

___ have: a protocol a key exchange algorithm an encryption angorithm a checksum

Whois

___ protocol: 1)client opens a TCP socket to port 43 2)client sends a search string terminated by a carriage return 3)server sends an unspecified amount of human-readable information in response to the command then closes the connection 4)client displays information to the user

isBound

___ tells if the object has ever been bound to a port -returns true if the object has EVER been bound to a port.

printWriter

_____ replaces printStream

Scheme

a URI or URL's current ____ could include: data: base 64 encoded data included directly in the link file: a file located on a local disk FTP: a ftp server http: a www server using http mailto: an email address magnet: a resource available for download via peer-to-peer networks like Bit Torrent telnet: a connection to a telnet-based server urn: a unified resource name

a URI that has a scheme is an absolute URI whereas

a URI without a scheme is relative

parent doccument

a URL may inherit the protocol, hostname, and path of it's ___ ___

thread starvation

a VM that uses cooperative thread scheduling is more susceptible to ___ ___ than a VM that uses preemptive thread scheduling.

request log

a ___ ___ contains client errors like disconnects or malformed requests

InputStreamReader GZIPInputStream CipherInputStream BufferedInputStream TelnetInputStream

a compressed, encrypted text file arrives from the local network interface, where native code presents it to the undocumented TelnetInputStream. A BufferedInputStream buffers the data to speed up the entire process. A CipherInputStream decrypts the data. A GZIPInputStream decompresses the deciphered data. An InputStreamReader converts the decompressed data to Unicode text. Finally, the text is read into the application and processed.

URL Connection

a program that uses a ___ ___: constructs the URL object invokes the URL Object's openConnection() method Configures the URL connection gets the header file gets the input stream and reads the data gets the output stream and writes the data closes the connection

terminates

a server ___ when the client closes the connection

interrupt

a sleeping thread can be woken with

preemptive

a type of thread scheduling that determines when a thread has had a fair share of CUP time, pauses the thread, and hands off control of the CUP to another thread.

cooperative

a type of thread scheduling that waits for the running thread to pause itself before handing off control to a different thread.

What format is the data written in for a DataOutputStream?

big endian format

DataInputStream and DataOutputStream read and write in what format?

binary

class selector

binary values xxx000

javax.net

abstract socket factory classes used instead of constructors to create secure sockets

After a ServerSocket is created, what method is used to listen for incoming connections?

accept()

What method is run after instantiation of the server socket to listen for incoming connections?

accept() - blocks the client until attempts to make a connection at which point accept() returns a Socket object connecting the client to the server.

synchronize

action of multiple threads and make sure that only one thread can access the resource at a given point in time

Which method is not a member of the Reader class? read / active / skip / mark

active

run

all the work in the thread is done in this method. invokes other methods. constructs other objects. spawns threads. thread dies when complete. the main() of threaded programs.

pushbackReader

allows a character to be inserted back into the stream

Which InetAddress method returns true if the address is isSiteLocalAddress()

an IPv6 site-local address, false otherwise?

IRI

an Internationalized Resource Identifier easier to type and much easier to read, but a lot of software and protocols expect and support only ASCII URIs. If you don't hexadecimally encode non-ASCII characters like this, but just include them directly, then instead of a URI

Audit Log

an ___ ___ contains one entry for each connection made to the server one enter for each operation

Error log

an ___ ___ contains unexpected expectations that occur while the server was running things like NPEs

java.net.URL class

an abstraction of a Uniform Resource Locator such as http://www.lolcats.com/ or ftp://ftp.redhat.com/pub/. It extends java.lang.Object, and it is a final class that cannot be subclassed. Rather than relying on inheritance to configure instances for different kinds of URLs, it uses the strategy design pattern. Protocol handlers are the strategies, and the URL class itself forms the context through which the different strategies are selected. - you can construct instances

java.util.concurrent

an atomic class that is: thread safe but mutable. has atomic Integer, Long, etc. . Stores references to variables in atomic reference. sets and gets of reference variables are then thread safe.

Unlike the URL class, the URI class does not depend on

an underlying protocol handler. As long as the URI is syntactically correct, Java does not need to understand its protocol in order to create a representative URI object. Thus, unlike the URL class, the URI class can be used for new and experimental URI schemes.

.getHostAdress() returns

and IPV4 address

GET

any page accessed with ___ should be cached.

JPasswordField

anything that the user types echoes and asterisk. i.e. password:*******

yes

are URLs immutable?

JVM threads

are green threads, or user threads, ____ divides its sole thread of execution into multiple threads. (not the underlying platform's operating system)

In public key (or ___ ) encryption, different keys are used to encrypt and decrypt the data.

asymmetric

.getLocalHost();

attempts to return a hostname, if it fails, returns the loopback address

hirearchical structure

authority/path?query#fragment is an example of what?

If you do not want to wait until all the bytes you need are immediately available, you can use the _____ method to determine how many bytes can be read without blocking.

available( )

How does Peer-To-Peer work in Java?

both sides act as the Client and Server - Java does not explicitly handle peer-to-peer connections

Getting the correct result when using threads can depend on what factors?

can depend on how many CPU's the system uses, the speed of the CPU, how many threads a program spawns, and the algorithm the JVM uses to allot time to different threads.

Filters

can modify the data as it's read or written

dispose pattern

catch, write to log, ignore

no-cache

chached, but must be re-verified on each access

Filters are organized in a

chain

Most of these methods behave the same for PrintWriter as they do for PrintStream. The exceptions are the four write( ) methods, which write ___ rather than ___;

characters , bytes

Not all inputStreams support marking and resetting, you should always do what? prior to trying to use mark and reset?

check whether the markSupported() method returns true.

The specific SecurityManager method used to test whether a host can be resolved is :

checkConnect( ) public void checkConnect(String hostname, int port)

-1

checks if a DNS connection can be invoked on the specific host.

URI resolved URI = absoluteURI.resolve(relativeURI);

combines a absolute URI + the relative URI

absolute URL

completely specified URL

InputStreamReader is the most _____________ subclass or Reader

concrete

openStream()

connects resource referenced by URL allows you to read from an InputStream

a socket

connects to a remote machine, send data, receive data, close a connection, bind to a port, listen for incoming data, accepts connections from remote machines on the bound port

URL

constructors for __ -public URL(string URL) throws MalformedURLException -public URL(String protocol, String hostname, String file) throws MalformedURLException -public URL(String protocol, String host, int port, String file) throws MalformedURLException -public URL(URL base, String relative) throws MalformedURLException

The SingleFileHTTPServer class holds the ___ to send, the ___ to send, and the ___ to bind to.

content, header, port

toURI() method

converts a URL object to an equivalent URI object: public URI toURI() throws URISyntaxException

Many websites use small strings of text known as ___ to store persistent client-side state between connections.

cookies

ASCII

cookies are limited to nonwhitespace ___ text

name-value

cookies have a _______ pair but also several attributes like: expiration date version path security options domain port

A ___ thread scheduler waits for the running thread to pause itself before handing off control of the CPU to a different thread.

cooperative

executor service

create an ____ ____ to create to create threads as needed. Submit callable jobs to it, then return a future for each one, then get the returned value from the service. Poll until it gives a value. This way you can spawn lots of threads and order the results.

What method would you use after instantiating the socket object to open the port?

createSocket(host,port); createSocket(host,port,interface,localPort); createSocket(host,port); createSocket(host,port,interface,localPort); createSocket(proxy, host, port, autoClose);

java doesn't natively support

data format (32-bit unsigned integers)

These write methods belong to ______ write boolean write byte write short write char write int write long write float write double write chars write bytes write UTF

dataOutputStream

Data is transmitted across the Internet in packets of finite size called ___.

datagrams

20

date tcp

13

daytime tcp/udp

However, it's also possible for two threads to be too careful, each waiting for exclusive access to resources it will never get. This can lead to ___, in which two threads are each waiting for resources the other possesses

deadlock

java 7 / try with resources

declare a stream inside an argument list of the try block

bidirectional TCP protocol dict

defined in RFC 2229

.getAddress() allows to look at raw bytes of an IP address to...

determine if it is IPv4 or IPv6

public boolean isOpaque()

determine if the URI is hierarchical or non-hierarchical

What is on port 2628?

dict. It is a UTF-8 encoded dictionary service that provides definitions of words.

URLConnection

differences between URL and ______: ____ provides access to the HTTP header. ____ can configure request parameters set by the server ____ can write data to the server and read data from the server.

9

discard tcp/udp

Filters cannot...

disconnect from a stream; connection is permanent

constructor

don't start threads in the ___ because the object might not be initialized by the time the callback is done.

In java 6 or earlier it is wise to close a stream with a

finally block

OSPF

finds the fastest route and distributes this information to all routers on the segment

What is on port 79?

finger. It is a service that returns information about a user or users on the local system.

What method pushes all the data to the other end of the pipe even if the byte size is not big enough to send?

flush( )

What forces the stream to print the buffer, but does not close the stream?

flush()

What should you do to all streams before you close them?

flush()

Which of the following methods forcefully breaks the deadlock to send the buffered stream data even if the buffer isn't yet filled?

flush()

breaks deadlocks by forcing the buffered stream to send its data even if the buffer isn't full.

flush()

What method forcefully breaks the deadlock to sent the buffered stream data even if the buffer isn't yet filled?

flush().

21

ftp tcp

If, for some reason, you need all the addresses of a host, call the ___ method, which returns an array of all the addreses.

getAllByName( )

Using the URI "abc://admin:[email protected]:1234/path/data ?key=value&key2=value2#fragid1" What method would return the authority, and what would it return?

getAuthority( ); admin:[email protected]

What returns a NetworkInterface object representing the network interface bound to the specified IP address?

getByInetAddress()

Which NetworkInterface method returns a NetworkInterface object representing the network interface bound to the specified IP address?

getByInetAddress()

Which NetworkInterface method returns a NetworkInterface object representing the network interface bound to the specific IP address? getNetwork() getNetworkInterfaces() getByInetAddress() getByName()

getByInetAddress() is the NetworkInterface method that returns a NetworkInterface object representing the network interface bound to the specific IP address.

Which InetAddress method connects to a DNS server to resolve a hostname?

getByName

Which InetAddress method connects to a DNS server to resolve a hostname? getDNS() resolveName() getByName() getIPName()

getByName() is the InetAddress method that connects to a DNS server to resolve a hostname.

The ___ method calls DNS if it can, and may replace the existing cached hostname.

getCanonicalHostName( )

If the server does not use MIME headers or sends an unfamiliar Content-type, ___ returns some sort of InputStream with which the data can be read.

getContent() public final Object getContent(Class[ ] classes) throws IOException

The ___ method returns a String that tells you how the content is encoded.

getContentEncoding( )

It returns a string that tells you how the content is encoded.

getContentEncoding()

The ___ method tells you how many bytes there are in the content.

getContentLength( )

Which are methods for retrieving specific header fields?

getContentType() getContentLength() getContentEncoding()

Retrieving Specific Header Fields

getContentType() It returns the MIME media type of the response body. getContentLength() It tells how many bytes there are in the content. getLastModified() It returns the date on which the document was last modified. getDate() Returns a long that tells you when the document was sent, in milliseconds since midnight, Greenwich Mean Time (GMT), January 1, 1970. getContentEncoding() It returns a string that tells you how the content is encoded.

You can retrieve the store in which the CookieManager saves its cookies with the ___ method:

getCookieStore( ) Code: CookieStore store = manager.getCookieStore();

The ___ method returns a long that tells you when the document was sent, in milliseconds since midnight, Greenwich Mean Time (GMT), January 1, 1970.

getDate( )

Returns a long that tells you when the document was sent, in milliseconds since midnight, Greenwich Mean Time (GMT), January 1, 1970.

getDate()

___ returns a long indicating the number of milliseconds after 12:00 A.M., GMT, January 1, 1970, at which the document expires

getExpiration( )

Read-only access to these parts of a URL is provided by nine public methods:

getFile(), getHost(), getPort(), getProtocol(), getRef(), getQuery(), getPath(), getUserInfo(), and getAuthority()

Using the URI "abc://admin:[email protected]:1234/path/data ?key=value&key2=value2#fragid1" What method would return the fragment, and what would it return?

getFragment( ); fragid1

The ___ method returns the value of a named header field.

getHeaderField( ) Example: String contentType = uc.getHeaderField("content-type");

client server

getHeaderFieldKey() and GetHeaderField() get the HTTP header sent from ___ to ___

InetAdress getter methods

getHorstName() getCanonicalHostName() getAddress() getHostAddress()

Which of the following methods returns a string containing the dotted quad format of the IP address?

getHostAddress()

Which of the following methods returns a string containing the dotted quad format of the IP address? getAddress() isAnyLocalAddress() getHostAddress() getLocalHost()

getHostAddress() returns a string containing the dotted quad format of the IP address.

The ___ method returns a String that contains the name of the host with the IP address represented by this InetAddress object.

getHostName( )

Observe the given Java code: InetAddress address = InetAddress.getByName(ip); System.out.println(address._____); What is the appropriate method that should be used in this code to print out DNS resolution?.

getHostName()

The ___ and ___ methods tell you the remote host and port the Socket is connected to; or, if the connection is now closed, which host and port the Socket was connected to when it was connected.

getInetAddress( ) getPort( )

Which of the following methods tells that the remote host socket is connected to which port?

getInetAddress()

The ___ method returns a java.util.Enumeration containing an InetAddress object for each IP address the interface is bound to.

getInetAddresses( )

Which method returns an Enumeration with all or a subset of the InetAddresses bound to a network interface?

getInetAddresses()

What method is used to communicate with the client?

getInputStream(); and getOutputStream();

___ returns the date on which the document was last modified.

getLastModified( )

The ___ and ___ methods tell you the network interface and port the Socket is connected from.

getLocalAddress( ) getLocalPort( )

Which InetAddress method returns an InetAddress object for the host on which your code is running?

getLocalHost

The ___ method returns an InetAddress object for the host on which your code is running:

getLocalHost( )

The ___ method returns the name of a particular NetworkInterface object, such as eth0 or lo.

getName( )

Which NetworkInterface returns a java.util.Enumeration listing all the network interfaces on the local host?

getNetworkInterfaces()

The ___ method returns an OutputStream on which you can write data for transmission to a server.

getOutputStream( )

Socket Class methods

getOutputStream() Returns an output stream for this socket.

Using the URI "abc://admin:[email protected]:1234/path/data ?key=value&key2=value2#fragid1" What method would return the path, and what would it return?

getPath( ); /path/data

URLConnection

gives you access to everything sent by the server: in addition to the document itself in its raw form (e.g., HTML, plain text, binary image data), you can access all the metadata specified by the protocol. For example, if the scheme is HTTP or HTTPS, the URLConnection lets you access the HTTP headers as well as the raw HTML. The URLConnection class also lets you write data to as well as read from a URL —for instance, in order to send email to a mailto URL or post form data.

Whereas yielding indicates only that a thread is willing to pause and let other equal-priority threads have a turn, a thread that ___ will pause whether any other thread is ready to run or not.

goes to sleep

readers writers

handle special cases of text in encodings, like UTF-8 and ISO 8859-1

ftp://mp3:[email protected]:33/VanHalen-Jump.mp3

has the authority mp3:[email protected]:33. This authority has the username mp3, the password mp3, the host ci43198-a.ashvil1.nc.home.com, and the port 33. It has the scheme ftp and the path /VanHalen-Jump.mp3. (In most cases, including the password in the URI is a big security hole unless, as here, you really do want everyone in the universe to know the password.)

Every filter input stream

has the same read(), close(), and available methods as java.io.InputStream

Every filter output stream

has the same write(), close() and flush() methods as java.io.OutputStream

The URI http://www.powells.com/cgibin/ biblio?inkey=62-1565928709-0

has the scheme http, the authority www.powells.com, the path /cgi-bin/biblio, and the query inkey=62-1565928709-0. The URI urn:isbn:156592870 has the scheme urn but doesn't follow the hierarchical //authority/ path?query form for scheme-specific parts.

The ___ contains the address and port to which the packet is going, the address and port from which the packet came, a checksum to detect data corruption, and various other housekeeping information used to ensure reliable transmission. The ___ contains the data itself.

header payload

a datagram contains

header + payload

SingleFileHTTPServer

hold the content to send, the header to send and the port to bind to

Which of the following fields define the state of a Whois object?

host and port

which defines the state of a Whois object?

host and port

content encoding

how bytes are encoded in other bytes

thread or runnable

how do objects register interest in the result of a callback method.

openConnection()

how do you create a URL object in the URL class?

2

how many isReachable() methods does InetAddress have? These methods test if a node is reachable from the current host. They check for proxy servers, firewalls, misbehaving routers, etc use traceroute to find out if the specified address is reachable if the host responds within the timeout, the methods return true, otherwise they return false. - how many protected constructors does java.io.outputStream have?

3 (char[] text, int offset, int length)

how many parameters does the base write method of java.io.outputStream take?

2

how many protected constructors does java.io.outputStream have?

0 (it has a static factory method that connects to a DNS server) algorithms

how many public constructors does inetAddress have?

when a host must not use a proxy and must connect directly instead

http.nonProxyHosts

To refer to this point, a URL includes not only the document's filename but the fragment identifier separated from the rest of the URL by a #:

http://www.cafeaulait.org/javafaq.html#xtocid1902914

While browsing http://www.company.com/history/projects, a user clicks on a link for < a href="/founders/johnsmith/">. Which URL would the user be redirected to?

http://www.company.com/founders/johnsmith/

Given https://www.company.com/current/sfs/index.html?isbn=44322#toc What is the protocol?

https

default protocol

if URL(String protocol, String host, int port, String file) sets the port to -1, which protocol will be used?

call back

if more than one object wants the result of a calculation, the thread can keep a list of objects to ___ ___.

IOException

if the call to openConnection() fails, what is thrown by the network?

143

imap tcp

URLs are

immutable. After a URL object has been constructed, its fields do not change. This has the side effect of making them thread safe.

How to make a class callable

implement Callable<Object> for example, implement Callable<Integer>

What is an import statement that will import InetAddress?

import java.net.*;

The ___ method returns true if the address is a wildcard address, false otherwise.

isAnyLocalAddress( )

Which InetAddress method returns true if the address is a wildcard address, false otherwise?

isAnyLocalAddress()

The parts of a URL

import java.net.*; public class URLSplitter { public static void main(String args[]) { for (int i = 0; i < args.length; i++) { try { URL u = new URL(args[i]); System.out.println("The URL is " + u); System.out.println("The scheme is " + u.getProtocol()); System.out.println("The user info is " + u.getUserInfo()); String host = u.getHost(); if (host != null) { int atSign = host.indexOf('@'); if (atSign != -1) host = host.substring(atSign+1); System.out.println("The host is " + host); } else { System.out.println("The host is null."); } System.out.println("The port is " + u.getPort()); System.out.println("The path is " + u.getPath()); System.out.println("The ref is " + u.getRef()); System.out.println("The query string is " + u.getQuery()); } catch (MalformedURLException ex) { System.err.println(args[i] + " is not a URL I understand."); } System.out.println(); } } }

finally block

in Java 6 and earlier, it's wise to close the stream in a finally block.

in java 7 Socket implements autocloseable where as...

in java 6 and earlier is necessary to use a finally statement

HTTP header

includes information about content and content encoding

writeUTF()

includes length of string Encodes the string itself in a variant of the UTF-8 encoding of Unicode incompatible with most non-java software

NullPointerException

indicates a bug in the server that needs to be fixed.

getUseClientMode()

indicates whether this socket will use authentication in its first handshake

UnknownHostException

inetAddress.getByAddress() throws this if a byte array of an illegal size is passed as the address argument.

What does the 1XX line of HTTP response codes represent?

informational 100 - Continue 101 - Switching Protocols

a client...

initiates communication

Given the URI, http://www.powells.com/cgi-bin/biblio?inkey=62-1565928709-0, what is the query portion?

inkey=62-1565928709-0

Filter streams can be chained to either a ___ or a ___

input stream, output stream

setDefault

install the subclass of ResponseCache by passing it to ResponseCache.___()

test for the type of the returned object using

instanceof

How do you convert a signed byte to an unsigned byte?

int i = b >= 0 ? b : 256 + b;

java.io.inputStream

int read() reads a single byte of data from the input stream and returns an int from 0 to 255 int read(byte [] input) int read(byte [] input, int offset, int length) long skip(long n) boolean available() close()

HTTP 500

internal server error

Callback

invoking a method in the main class that started it

The getPath() method

is a near synonym for getFile(); that is, it returns a String containing the path and file portion of a URL. However, unlike getFile(), it does not include the query string in the String it returns, just the path.

a URL object

is a representation of an application layer protocol for network retrieval, whereas a URI object is purely for string parsing and manipulation. The URI class has no network retrieval capabilities. The URL class has some string parsing methods, such as getFile() and getRef(), but many of these are broken and don't always behave exactly as the relevant specifications say they should. Normally, you should use the URL class when you want to download the content at a URL and the URI class when you want to use the URL for identification rather than retrieval, for instance, to represent an XML namespace. When you need to do both, you may convert from a URI to a URL with the toURL() method, and from a URL to a URI using the toURI() method.

The syntax of a URI

is composed of a scheme and a scheme-specific part, separated by a colon, like this: scheme:scheme-specific-part

getInetAddress() tells about the remote host socket

is connected to or if the connection is closed then to which host socket was connected to when it was connected.

java.net.Socet

is java's fundamental class for performing client-side TCP operations

println()

is platform dependent

URL class

is the simplest way for a Java program to locate and retrieve data from the network. - abolutizes all the URIs before storing them

The getContent() method

is the third way to download data referenced by a URL. This method retrieves the data referenced by the URL and tries to make it into some type of object.

The ___ method returns true if the URI is absolute, false if it's relative:

isAbsolute( )

Which InetAddress method returns true if the address is a wildcard address, false otherwise? isMulticastAddress() isAnyLocalAddress() isLoopbackAddress() isLinkLocalAddress()

isAnyLocalAddress() is the InetAddress method that returns true if the address is a wildcard address and false otherwise.

What is the method to check if a socket is closed?

isClosed() - returns true if closed, false if open

What is the method to check if a socket is connected?

isConnected() - returns true if socket has been connected

The ___ method returns true if the address is an IPv6 LINK-local address, false otherwise.

isLinkLocalAddress( )

The ___ method returns true if the address is the loopback address, false otherwise.

isLoopbackAddress( )

The ___ method returns true if the address is a global multicast address, false otherwise.

isMCGlobal( )

Which method returns true if the IPv6 address starts with FF0E?

isMCGlobal()

Which method returns true of the IPv6 address starts with FF0E?

isMCGlobal() returns true if the IPv6 address starts with FF0E.

The ___ method returns true if the address is a subnet-wide multicast address, false otherwise.

isMCLinkLocal( )

The ___ method returns true if the address is an interface-local multicast address, false otherwise.

isMCNodeLocal( )

The ___ method returns true if the address is an organization-wide multicast address, false otherwise.

isMCOrgLocal( )

The ___ method returns true if the address is a site-wide multicast address, false otherwise.

isMCSiteLocal( )

The ___ method returns true if the address is a multicast address, false otherwise.

isMulticastAddress( )

determine if a URL is hierarchical

isOpaque()

The ___ method returns true if the address is an IPv6 SITE-local address, false otherwise.

isSiteLocalAddress( )

How does PrintStream deal with the platform it's running on?

it assumes the default encoding of the platform it's running on.

How does PrintStream handle exceptions?

it eats them

Why should you not use polling to resolve a race condition?

it is not guaranteed to work

Socket Exension

java secure ___ ___ is devided into four packages java.net.ssl: -abstract classes that define java's API for secure network communication javax.net: -abstract socket factory classes used instead of constructors to create secure sockets java.security.cert -classes for handeling public-key certs for SSL com.sun.net.ssl -concrete class to implement encryption angorithims and protocols in suns reference implementation of JSSE

this package has fileReader fileWriter stringReader stringWriter charArrayWriter charArrayReader

java.io

What uses the 5 fundamental methods of OutputStream to write data into an expandable byte array?

java.io.ByteArrayOutputStream

What uses the 5 fundamental methods of OutputStream to write data into a file?

java.io.FileOutputStream

Java's basic input class

java.io.InputStream

Java's basic input class is

java.io.InputStream

The Reader class mirrors what class?

java.io.InputStream

basic java input class

java.io.InputStream

Java's basic output class

java.io.OutputStream

Java's output class

java.io.OutputStream

The Writer class mirrors what class?

java.io.OutputStream. Just like OutputStream, Writer is never used directly instead it is used via one of its subclasses.

What does the writer class mirror?

java.io.Outputstream.

Which class specified by the API by which characters are read?

java.io.Reader

jWhich class specified the API by which characters are read?

java.io.Reader

what does the java reader class mirror?

java.io.inputStream

what class do writer classes mirror

java.io.outputStream

A user logs into the e-mail client via the web GUI using the username and password. The user wants to ensure that credentials are not easily obtainable by sniffing network traffic. Which class can be imported to create a secure socket?

javax.net.*

A user logs into the e-mail client via the web GUI using the username and password. The user wants to ensure that credentials are not easily obtainable by sniffing network traffic. Which class can be imported to create a secure socket?

javax.net.*

What class can be imported to create secure sockets?

javax.net.* can be imported

SSL-enabled server sockets

javax.net.SSLServerSocket

Secure client sockets are only half of the equation. The other half is SSL-enabled server sockets. These are instances of the ___ class.

javax.net.SSLServerSocket

Which is a package is the Java Secure Socket Extension?

javax.net.ssl javax.net java.security.cert

Java Secure Socket Extension

javax.net.ssl This package provides classes for the secure socket package. javax.net This package provides classes for networking applications. These classes include factories for creating sockets. java.security.cert This package provides classes and interfaces for parsing and managing certificates, certificate revocation lists (CRLs), and certification paths. com.sun.net.ssl This package provides classes that implement the encryption algorithms and protocols in Sun's reference implementation of the JSSE.

join(), join(long milliseconds), join(long milliseconds, int nanoseconds)

join() waits indeterminately to join. the other two join methods wait for their specified times and then proceed regardless of the join outcome.

Which is not a way to wake up a thread?

joining it with another thread

The ___ method returns a String containing the whois response to a given query.

lookUpNames( )

iterative servers

loop through program code so that every time the progam ends or a socket closes, it starts again. This works well for simple clients.

TCP defines four general traffic classes

low cost high reliability maximum throughput minimum delay

Which method is returned when a single thread program exits?

main()

mark() and reset()

mark a position in the stream and reset to the marked position using these methods, if not supported. reset will throw an IOException

What three methods allow programs to re-read data?

mark( ) reset( ) markSupported( )

How do you set the current position of the stream?

mark()

primitive

method arguments of ___ types are thread safe because they are passed by value. These methods should be declared static.

POST

method, most general method. uploads a representation of a resource to a server at a known URL. should be used for unsafe operations, such as making a purchase. Uploads a representation of a resource to a server at a known URL but does not specify what the server is to do with the newly supplied resource.

Construct a URL object. Invoke the URL object's openConnection() method to retrieve a URLConnection object for that URL. Invoke the URLConnection's getInputStream() method. Read from the input stream using the usual stream API.

minimal set of steps needed to retrieve data from a URL using an URLConnection object:

what does sleep(mS) do for threading?

more powerful than yielding

internet host

most current examples of URIs use an ___ ___ as an authority

is MCLinkLocal()

multicast, starts with FF02 or FF12

is MCSiteLocal()

multicast, starts with FF05 or FF15

is MCGlobal()

multicast, starts with FF0E or FF1E

Assured forwarding AF

multiple binary values

JavaMail Transport objects

need to be disposed explicitly

fileOutputStream

needs to use native code to write data files to the host program

119

nntp tcp

Can filters be disconnected from the stream?

no

Does BufferedOutputStream declare any of it's own methods?

no

no-sotore

no chache entry will be stored

Should PrintStream be used for network connections?

no, it is too unreliable

What is the basic InputStream method?

noargs read( )

basic method of InputStream

noargs read() method

equals()

on a URL is potentially a blocking I/O operation! For this reason, you should avoid storing URLs in data structure that depend on equals() such as java.util.HashMap. Prefer java.net.URI for this, and convert back and forth from URIs to URLs when necessary.

pool.shutdown()

once all files are in a pool, you can call ___.___ this doesn't abort the pending jobs this notifies the pool that no additional tasks are to be added.

URLs are immutable, meaning:

once constructed, fields do not change, making them thread safe

if multiple threads try to write within a same file then they may corrupt the data because

one of the threads can override data or while one thread is opening the same file at the same time another thread might be closing the same file

common object

one way to use synchronization to create a thread safe program is to pick a ___ ___ to synchronize everything on, that way everything must run in series.

commit

only ___ operations should use post

The ___ method opens a socket to the specified URL and returns a URLConnection object.

openConnection( );

HTTP 1.0

opens a new connection for each request

openConnection()

opens a socket to the specified URL and returns a URLConnection object

getContent()

operates by looking at the Content-type field in the header of the data it gets from the server. If the server does not use MIME headers or sends an unfamiliar Content-type, getContent() returns some sort of InputStream with which the data can be read. An IOException is thrown if the object can't be retrieved.

ASCII

output stream is passed this to generate characters() in out.

POST

pages accessed with ___ should never be cached.

NetworkInterface object represents

physical hardware and virtual addresses

SO_KEEPALIVE

pings the server every 2 hours to make sure it has not crashed

println() line seperator

platform dependent so its not good for networking where you need consistency.

110

pop3 tcp

form

post data to a ___ by: decide the name-value pairs to send to the serverside program write the serverside program to accept and process requests create a query string in the Java program and pass each name and value in the string to URLEncoder.encode() Open URLConnection to the URL of the program that will accept the data set doOutput to true via setDoOutput(true) write a query string onto URLConnection's outputStream close URLConnection's outputStream read the server response from URLConnection's inputSTream

A ___ thread scheduler determines when a thread has had its fair share of CPU time, pauses that thread, and then hands off control of the CPU to a different thread.

preemptive

what PrintStream method is platform independent?

println()

A JVM's thread scheduler schedules green threads according to

priority

Reader methods

protected Reader() protected Reader(Object lock) public abstract int read(char[] text, int offset, int length) throws IOException public int read() throws IOException public int read(char[] text) throws IOException public long skip(long n) throws IOException public boolean ready() public boolean markSupported() public void mark(int readAheadLimit) throws IOException public void reset() throws IOException public abstract void close() throws IOException

What are the 5 fundamental methods and the close and flush methods of Writer class?

protected Writer( ) protected Writer(Object lock) public abstract void write(char[ ] text, int offset, int length) throws IOException public void write(int c) throws IOException public void write(char[ ] text) throws IOException public void write(String s) throws IOException public void write(String s, int offset, int length) throws IOException public abstract void flush( ) throws IOException public abstract void close( ) throws IOException

Writer methods

protected Writer()protected Writer(Object lock) public abstract void write(char[] text, int offset, int length) throws IOException public void write(int c) throws IOException public void write(char[] text) throws IOException public void write(String s) throws IOException public void write(String s, int offset, int length) throws IOException public abstract void flush() throws IOException public abstract void close() throws IOException

Know the parts of a URL

protocol://authority:port/path?query#fragment

Know the parts of the URI

protocol://authority:port/path?query#fragment

Components of URL

protocol://userInfo@host:port/path?query#fragment The host part of a URL is the name of the server that provides the resource you want. It can be a hostname such as www.ucertify.com or www.jigyaasa.net or an IP address, such as 204.148.40.9 or 128.238.3.21. The userInfo is optional login information for the server. If present, it contains a username and, rarely, a password. The port number is also optional. It's not necessary if the service is running on its default port (port 80 for HTTP servers). Here, the protocol is another word for what was called the scheme of the URI. In a URL, the protocol part can be file, ftp, http, https, magnet, telnet, or various other strings. The path points to a particular resource on the specified server. The query string provides additional arguments for the server. It's commonly used only in http URLs, where it contains form data for input to programs running on the server. Finally, the fragment references a particular part of the remote resource. If the remote resource is HTML, the fragment identifier names an anchor in the HTML document. If the remote resource is XML, the fragment identifier is an XPointer.

DataInputStream and DataOutputStream

provide methods for reading and writing Java's primitive data types and strings in a binary format. The binary formats used are primarily intended for exchanging data between two different Java programs through a network connection, a datafile, a pipe, or some other intermediary. read and write in a binary format -Intended for exchanging data between two Java programs through network connection, a datafile, a pipe, or some other intermediary -All data is written in big-endian format

What acts as go-between restricting connections or forwarding them along?

proxy server

What filters traffic like firewalls, but generally operate at the application layer?

proxy server

What are the constructors for BufferedInputStream?

public BufferedInputStream(InputStream in) public BufferedInputStream(InputStream in, int bufferSize) *BufferedOutputStream is the same, essentially

BufferedReader and BufferedWriter constructors

public BufferedReader(Reader in, int bufferSize) public BufferedReader(Reader in) public BufferedWriter(Writer out) public BufferedWriter(Writer out, int bufferSize)

Retrieving Data from a URL

public InputStream openStream() throws IOException public URLConnection openConnection() throws IOException public URLConnection openConnection(Proxy proxy) throws IOException public Object getContent() throws IOException public Object getContent(Class[] classes) throws IOException

The URL class has several methods that retrieve data from a URL:

public InputStream openStream() throws IOException public URLConnection openConnection() throws IOException public URLConnection openConnection(Proxy proxy) throws IOException public Object getContent() throws IOException public Object getContent(Class[] classes) throws IOException

What is the constructor for PasswordAuthentication?

public PasswordAuthentication(String userName, char[] password)

Which is a constructor for the PasswordAuthentication class?

public PasswordAuthentication(String userName, char[] password)

This constructor creates an unconnected socket that connects through a specified proxy server:

public Socket(Proxy proxy)

Socket Contructors

public Socket(String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public Socket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException. This socket connects to the host and port specified in the first two arguments. It connects from the local network interface and port specified by the last two arguments. The network interface may be either physical (e.g., an Ethernet card) or virtual (a multihomed host with more than one IP address). If 0 is passed for the localPort argument, Java chooses a random available port between 1024 and 65535. By passing 0 for the local port number, I say that I don't care which port is used but I do want to use the network interface bound to the local hostname router.

getContentType

public String ___() returns the MIME media type of the response body throws no exceptions, and returns null if the content type isn't available.

getHeaderField

public String ___(String name): returns the value of the named header field is not case sensitive does not require a closing colon, returns a String.

InetAddress Class

public String getHostName() The getHostName() method returns a String that contains the name of the host with the IP address represented by this InetAddress object public String getCanonicalHostName() getCanonicalHostName() calls DNS if it can, and may replace the existing cached hostname. public byte[] getAddress() If you want to know the IP address of a machine (and you rarely do), then use the getAddress() method, which returns an IP address as an array of bytes in network byte order. public String getHostAddress() The getHostAddress() method returns a string containing the dotted quad format of the IP address.

If you want the raw, encoded parts of the URI, there are five parallel getRaw_Foo_() methods:

public String getRawAuthority( ) public String getRawFragment( ) public String getRawPath( ) public String getRawQuery( ) public String getRawUserInfo( )

What methods access a username and password?

public String getUserName( ); public char[] getPassword( );

You can call ___ to force the authority to be reparsed:

public URI parseServerAuthority() throws URISyntaxException

The URI class has three methods for converting back and forth between relative and absolute URIs:

public URI resolve(URI uri) public URI resolve(String uri) public URI relativize(URI uri)

Java.net.URI Constructing a URI

public URI(String uri) throws URISyntaxException public URI(String scheme, String schemeSpecificPart, String fragment) throws URISyntaxException public URI(String scheme, String host, String path, String fragment) throws URISyntaxException public URI(String scheme, String authority, String path, String query, String fragment) throws URISyntaxException public URI(String scheme, String userInfo, String host, int port, String path, String query, String fragment) throws URISyntaxException

URIs are built from strings. You can either pass the entire URI to the constructor in a single string, or the individual pieces:

public URI(String uri) throws URISyntaxException public URI(String scheme, String schemeSpecificPart, String fragment) throws URISyntaxException public URI(String scheme, String host, String path, String fragment) throws URISyntaxException public URI(String scheme, String authority, String path, String query, String fragment) throws URISyntaxException public URI(String scheme, String userInfo, String host, int port, String path, String query, String fragment) throws URISyntaxException

openConnection

public URL connection ___(proxy proxy) throws IOException if no proxies are supported, this proxy is ignored.

List the java.net.URL constructors

public URL(String url) throws MalformedURLException public URL(String protocol, String hostname, String file) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(URL base, String relative) throws MalformedURLException

Java.net.URL Constructing a URL

public URL(String url) throws MalformedURLException public URL(String protocol, String hostname, String file) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(URL base, String relative) throws MalformedURLException

java.net.URL Constructor

public URL(String url) throws MalformedURLException public URL(String protocol, String hostname, String file) throws MalformedURLException public URL(String protocol, String host, int port, String file) throws MalformedURLException public URL(URL base, String relative) throws MalformedURLException

URL

public ___(URL base, String relative) throws MalformedURLException makes an absolute URL out of a relative URL

get

public abstract CacheResponse ___(URI uri, String requestMethod, map <String, list<String>> requestHeaders) throws IOException and public abstract CacheRequest get(URI uri, URLConnection connection) throws IOException are both methods to store and retrieve data from the system's single cache. put returns a cacheRequest object that wraps an OutputStream into which the URL will write cacheable data .

Which is an overloaded createSocket() method to build an SSLSocket?

public abstract Socket createSocket(String host, int port) throws IOException, UnknownHostException public abstract Socket createSocket(InetAddress host, int port) throws IOException public abstract Socket createSocket(String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException

Overloaded constructors for SSLSocketFactory

public abstract Socket createSocket(String host, int port) throws IOException, UnknownHostException public abstract Socket createSocket(InetAddress host, int port) throws IOException public abstract Socket createSocket(String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public abstract Socket createSocket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public abstract Socket createSocket(Socket proxy, String host, int port, boolean autoClose) throws IOException

createSocket Methods

public abstract Socket createSocket(String host, int port) throws IOException, UnknownHostException public abstract Socket createSocket(InetAddress host, int port) throws IOException public abstract Socket createSocket(String host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public abstract socket createSocket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException, UnknownHostException public abstract Socket createSocket(Socket proxy, String host, int port, boolean AutoClose) throws IOExceptions. tunnels through the proxy server to the specified host and port.

The ___ method in SSLSocketFactory tells you which combination of algorithms is available on a given socket

public abstract String[ ] getSupportedCipherSuites( )

The ___ method returns true if multisocket sessions are allowed, false if they're not.

public abstract boolean getEnableSessionCreation( )

The ___ method tells you whether the particular HttpURLConnection is going through a proxy server:

public abstract boolean usingProxy( )

The java.net package includes the ___ class you can use to provide a username and password for sites that protect themselves using HTTP authentication:

public abstract class Authenticator extends Object

This class provides the fundamental methods needed to read data as raw bytes.

public abstract int read() throws IOException public int read(byte[] input) throws IOException public int read(byte[] input, int offset, int length) throws IOException public long skip(long n) throws IOException public int available() throws IOException public void close() throws IOException

java.io.InputStream

public abstract int read() throws IOException public int read(byte[] input) throws IOException public int read(byte[] input, int offset, int length) throws IOException public long skip(long n) throws IOException // skip over data without reading it. public int available() throws IOException public void close() throws IOException // releases any resources associated with the stream, such as file handles or ports. SubClasses FileInputStream ( read data from a file) TelnetInputStream ( read data from a network) ByteArrayInputStream (read data from an array of bytes)

The ___ method determines whether the socket needs to use authentication in its first handshake.

public abstract void setUseClientMode(boolean mode) throws IllegalArgumentException

OutputStream

public abstract void write(int b) throwsIOException public void write(byte[] data) throws IOException public void write(byte[] data, int offset, int length) throws IOException public void flush() throws IOException public void close() throws IOException

java.io.OutputStream contains the fundamental methods needed to write data

public abstract void write(int b) throwsIOException public void write(byte[] data) throws IOException public void write(byte[] data, int offset, int length) throws IOException public void flush() throws IOException public void close() throws IOException

java.io.OutputStream

public abstract void write(int b) throwsIOException public void write(byte[] data) throws IOException public void write(byte[] data, int offset, int length) throws IOException public void flush() throws IOException // breaks the deadlock by forcing the buffered stream to send its data even if the buffer isn't yet full. public void close() throws IOException // resources associated with the stream, such as file handles or ports. SubClasses --- FileOutputStream (write data to file) TelnetOutputStream (write data to the network) ByteArrayOutputStream (write data into expandable byte array)

Java includes 10 methods for testing whether an InetAddress object meets any of these criteria of a special or reserved IP address:

public boolean isAnyLocalAddress( ) public boolean isLoopbackAddress( ) public boolean isLinkLocalAddress( ) public boolean isSiteLocalAddress( ) public boolean isMulticastAddress( ) public boolean isMCGlobal( ) public boolean isMCNodeLocal( ) public boolean isMCLinkLocal( ) public boolean isMCSiteLocal( ) public boolean isMCOrgLocal( )

This method returns true if and only if the address is essentially an IPv4 address stuffed into an IPv6 container—which means only the last four bytes are nonzero.

public boolean isIPv4CompatibleAddress( )

These two methods attempt to use traceroute (more specifically, ICMP echo requests) to find out if the specified address is reachable and not blocked by a firewall or proxy.

public boolean isReachable(int timeout) throws IOException public boolean isReachable(NetworkInterface interface, int ttl, int timeout) throws IOException

The URL class also has a ____ method that checks whether two URLs point to the same resource:

public boolean sameFile(URL other)

openStream

public final InputStream __() connects to a resource referenced by a URL performs handshaking between the client and server returns an InputStream that data can be read from

getContent

public final Object ___() throws IOException operates by looking at the content type field in the header of the data it gets from the server. If the server doesn't use MIME headers or sends an unfimilliar content type, it returns an InputStream that the data can be read from. An IOException is thrown if the object can't be retrieved.

getContent

public final Object ___(class [] classes) lets you chose which class you want the content to be returned as. array positions are preferences.

DataInputStream

public final boolean readBoolean() throws IOException public final byte readByte() throws IOException public final char readChar() throws IOException public final short readShort() throws IOException public final int readInt() throws IOException public final long readLong() throws IOException public final float readFloat() throws IOException public final double readDouble() throws IOException public final String readUTF() throws IOException public final int read(byte[] input) throws IOException public final int read(byte[] input, int offset, int length) throws IOException public final void readFully(byte[] input) throws IOException public final void readFully(byte[] input, int offset, int length) throws IOException public final String readLine() throws IOException public final int readUnsignedByte() throws IOException public final int readUnsignedShort() throws IOException

Java uses two classes, ___ and ___, in order to distinguish IPv4 addresses from IPv6 addresses:

public final class Inet4Address extends InetAddress public final class Inet6Address extends InetAddress

Java provides three join() methods to allow one thread to wait for another thread to finish before continuing. These are:

public final void join() throws InterruptedException public final void join(long milliseconds) throws InterruptedException public final void join(long milliseconds, int nanoseconds) throws InterruptedException

What method is used to set up the priority for a thread?

public final void setPriority(int newPriority)

DataOutputStream

public final void writeBoolean(boolean b) throws IOException public final void writeByte(int b) throws IOException public final void writeShort(int s) throws IOException public final void writeChar(int c) throws IOException public final void writeInt(int i) throws IOException public final void writeLong(long l) throws IOException public final void writeFloat(float f) throws IOException public final void writeDouble(double d) throws IOException public final void writeChars(String s) throws IOException public final void writeBytes(String s) throws IOException public final void writeUTF(String s) throws IOException public final boolean readBoolean() throws IOException public final byte readByte() throws IOException public final char readChar() throws IOException public final short readShort() throws IOException public final int readInt() throws IOException public final long readLong() throws IOException public final float readFloat() throws IOException public final double readDouble() throws IOException public final String readUTF() throws IOException

What are the 11 methods of DataOutputStream?

public final void writeBoolean(boolean b) throws IOException public final void writeByte(int b) throws IOException public final void writeShort(int s) throws IOException public final void writeChar(int c) throws IOException public final void writeInt(int i) throws IOException public final void writeLong(long l) throws IOException public final void writeFloat(float f) throws IOException public final void writeDouble(double d) throws IOException public final void writeChars(String s) throws IOException public final void writeBytes(String s) throws IOException public final void writeUTF(String s) throws IOException

getLocalPort

public int ___() find out what port you are listening on returns -1 if ServerSocket has not yet been bound

getContentLength

public int ___(): shows how many bytes of data exist if there is no header for this field, -1 is returned. if the size exceeds the max int length, -1 is returned.

in asymmetric encryption

public key encrypts the data and the private key decrypts the data

The ___ method returns a java.util.Enumeration listing all the network interfaces on the local host.

public static Enumeration getNetworkInterfaces() throws SocketException

getByInetAddress

public static NetworkInterface ___(InetAddress address) throws SocketException returns a network interface object representing the network interface bound to the specific IP address.

getByName

public static NetworkInterface ___(String name) throws SocketException returns a NetworkInterface object representing the interface with a particular name if the underlying network stack encounters a problem while locating the relevant network interface, a SocketException is thrown

Guessing MIME Media Types

public static String guessContentTypeFromName(String name) This method tries to guess the content type of an object based upon the extension in the filename portion of the object's URL public static String guessContentTypeFromStream(InputStream in) This method tries to guess the content type by looking at the first few bytes of data in the stream

getNetworkInterfaces

public static enumeration ____() throws SocketException returns a java.util.enumeration with all local network interfaces on the local host.

What methods are used to invoke the Thread.sleep( ) method?

public static void sleep(long milliseconds) throws InterruptedException public static void sleep(long milliseconds, int nanoseconds) throws InterruptedException

The InputStream class has three less commonly used methods that allow programs to back up and reread data they've already read.

public void mark(int readAheadLimit) public void reset() throws IOException public boolean markSupported()

What new method does BufferedWriter( ) add?

public void newLine( ) throws IOException

Which of the following is a valid PrintStream method?

public void println()

By default, Java ignores urgent data received from a socket. However, if you want to receive urgent data inline with regular data, you need to set the OOBINLINE option to true using these methods:

public void setOOBInline(boolean on) throws SocketException public boolean getOOBInline() throws SocketException

As an alternative way to express preferences, the ___ method assigns relative preferences to connection time, latency, and bandwidth:

public void setPerformancePreferences( int connectionTime, int latency, int bandwidth);

Which method will allow Java to store IP addresses in an array by using an output stream?

public void write(byte[] a)

Which class of writers will write characters in an array?

public void write(char[] test)

Which is a method of the Writer class?

public void write(int c) throws IOException

How many threads the program spawns, the speed of the CPU and disk on the system where this is run, how many CPUs the system uses, and the algorithm the Java virtual machine uses to allot time to different threads are all called ___ conditions.

race

InputStream and OutputStream

read and write bytes singly or in groups, but that's all. Deciding what those bytes mean-whether they're integers or IEEE 754 floating-point numbers or Unicode text-is completely up to the programmer and the code.

The ____ method waits and blocks execution of any code that follows it until a byte of data is available and ready to be read.

read( )

inputStream

read() close() and available() in filters work with

what methods does any subclass of inputStream need to overwrite?

read, close

what should not be used as it is deprecated and buggy?

readLine()

You should never use which of DataInputStream's methods?

readLine() because it is depreciated and buggy.

TelnetInputStream

reads data from a network connection

ByteArrayInputStream

reads data from an array of bytes

outputStreamWriter

receives chars converts to bytes writes bytes to underlying outputStream

synchronized(objectidentifier)

reference to an object whose lock associates with the monitor that the synchronized statement represents synchronized(objectidentifier) { // Access shared variables and other shared resources }

The ___ method creates a new URI object from the uri argument that is relative to the invoking URI.

relativize( )

close() method

releases any resources associated with the stream such as file handlers and ports / if stream derives from a network connection; it closes the connection.

what does wait do for threading?

releases lock until notified by another thread

DELETE

removes a resource from an specified URL

PUT

replaces all current representations of the target resource with the uploaded content idempotent - it can repeat without concern if it fails. Uploads a representation of a resource to the server at a known URL.

what to log>

requests and server errors

reset()

reset the stream to marked position

how do you return the stream to the marked position?

reset()

If markSupported() returns false

reset() will throw IOException

The ___ methods compare the uri argument to this URI and use it to construct a new URI object that wraps an absolute URI.

resolve( )

com.sun.net.ssl.SSLContext

responsible for creating fully configured and initialized secure server sockets

header files

retrieved in specific ____ ____: Content type content length content encoding data last modified date expires

inetAddress.getLocalHost

returns InetAddress object for the host that the code is running on

what does the getLocalHost() method do in the InetAddress class?

returns InetAddress object(hostname) for the host that your code is running

getDocumentBase()

returns URL of the page that contains the applet

getByInetAddress()

returns a NetworkInterface object representing the network interface bound to the specific IP address

getByInetAddress()

returns a NetworkInterface object representing the network interface bound to the specified IP address.

getByInterAddress()

returns a NetworkInterface object representing the network interface bound to the specified IP address; or returns SocketException

The getHost() method

returns a String containing the hostname of the URL. For example, this code fragment prints xkcd.com: URL u = new URL("https://xkcd.com/727/"); System.out.println(u.getHost());

The getFile() method

returns a String that contains the path portion of a URL; remember that Java does not break a URL into separate path and file parts. Everything from the first slash (/) after the hostname until the character preceding the # sign that begins a fragment identifier is considered to be part of the file. For example: URL page = this.getDocumentBase(); System.out.println("This page's path is " + page.getFile()); If the URL does not have a file part, Java sets the file to the empty string.

what does the isLoopBackAddress() method do in the InetAddress class?

returns a boolean true if address is the loopback address, it returns false for every other address

read()

returns a single value character as an int with a value from 0 to 65545 (or -1)

getCodeBase()

returns the URL of the applet .class file

The getDefaultPort() method

returns the default port used for this URL's protocol when none is specified in the URL. If no default port is defined for the protocol, then getDefaultPort() returns -1. For example, if the URL is http://www.userfriendly.org/, getDefaultPort() returns 80; if the URL is ftp://ftp.userfriendly.org:8000/, getDefault Port() returns 21.

The getRef() method

returns the fragment identifier part of the URL. If the URL doesn't have a fragment identifier, the method returns null. In the following code, getRef() returns the string xtocid1902914: URL u = new URL( "http://www.ibiblio.org/javafaq/javafaq.html#xtocid1902914"); System.out.println("The fragment ID of " + u + " is " + u.getRef());

getName()

returns the name of a particular NetworkInterface object

getHeaderField(int n)

returns the nth heather field. in HTTP the starter line containing the request method and path is header field zero and the first actual header is one

The getPort() method

returns the port number specified in the URL as an int. If no port was specified in the URL, getPort() returns -1 to signify that the URL does not specify the port explicitly, and will use the default port for the protocol.

The getQuery() method

returns the query string of the URL. If the URL doesn't have a query string, the method returns null. In the following code, getQuery() returns the string category=Piano: URL u = new URL( "http://www.ibiblio.org/nywc/compositions.phtml?category=Piano"); System.out.println("The query string of " + u + " is " + u.getQuery());

isIPv4CompatibleAddress

returns true if the address is a IPv4 address stuffed into an IPv6 container such as 0:0:0:0:0:0:0:xxxx

isSiteLocalAddress()

returns true if the address is an IPv6 site-local address, false otherwise.

isConnected()

returns true is there was ever a connection even if it has been closed.

InetAddress.getByName("www.google.com");

returns www.google.com/208.201.239.23

Which Thread method should you override and put all the Thread's work into? start / run / main / join

run

all the work in the thread is done in this method. invokes other methods. constructs other objects. spawns threads. thread dies when complete. the main() of threaded programs.

run

Which of the following cache policies defines the number of seconds from now before the cached entry should expire from a shared cache?

s-max-age=[second]

time in seconds before a cached page should expire

s-maxage=[second]

URI Parts

scheme:scheme-specific-part:fragment public String getScheme() public String getSchemeSpecificPart() public String getRawSchemeSpecificPart() public String getFragment() public String getRawFragment()

HTTP 1.1 and later

server does not have to close the socket after it sends a response, leaves it open and waits for a new request from the client on the same socket

executors

set up thread pools in java.util.concurrent submit each task as a runnable object to the pool receive a future object you can use to check the progress of the task.

A URLConnection doesn't allow output by default, so you have to call ___ before asking for an output stream.

setDoOut put(true)

Which of the following methods determines whether the socket needs to authenticate itself or not in its first handshake?

setUseClientmode()

java.util.logging.Level

seven levels of ___.___.___.___: level.SEVERE level.WARNING level.INFO level.CONFIG level.FINE level.FINER level.FINEST

Which of the following is the highest log level represented by the class java.util.logging.Level?

severe

Synchronization must be considered any time multiple threads __ ___.

share resources

Print streams

should be explicitly flushed. -If autoFlush is true the stream will flush every time a byte array linefeed is written or a println() invoked

readLine()

should not be used because it is deprecated and buggy

Sub classing Thread

should override run() and nothing else! The various other methods of the Thread class-for example, start(), interrupt(), join(), sleep(), and so on-all have very specific semantics and interactions with the virtual machine that are difficult to reproduce in your own code.

shutdownInput()

shut down only the input of a connection.

What method is used to shut down only the input of a connection?

shutdownInput()

read() methods return -1 to...

signal the end of a stream

what does yield do?

signals to the VM that another

When does blocking occur?

signals to the VM that another thread has to stop and wait for a resource it does not have.

OOBINLINE

single byte of "urgent" data out of band. sent immediately.

Thread Scheduling

sleep() It causes the currently executing thread to pause for the specified number of milliseconds. wait() It causes current thread to wait until either another thread invokes the notify() method or the notifyAll() method for the object. join() It waits for a particular thread to die. notifyAll() It wakes up all threads that are waiting on the object's monitor. yield() It causes the currently executing thread object to temporarily pause and allow other threads to execute. Blocking

HTTP Mime Type

text/* for human-readable words image/* for pictures model/* for 3D models such as VRML files audio/* for sound video/* for moving pictures, possibly including sound application/* for binary data message/* for protocol-specific envelopes such as email messages and HTTP responses multipart/* for containers of multiple documents and resources

Thread Scheduling

sleep() It causes the currently executing thread to pause for the specified number of milliseconds. wait() It causes current thread to wait until either another thread invokes the notify() method or the notifyAll() method for the object. join() It waits for a particular thread to die. notifyAll() It wakes up all threads that are waiting on the object's monitor. yield() It causes the currently executing thread object to temporarily pause and allow other threads to execute. Blocking sleep() It causes the currently executing thread to pause for the specified number of milliseconds. wait() It causes current thread to wait until either another thread invokes the notify() method or the notifyAll() method for the object. join() It waits for a particular thread to die. notifyAll() It wakes up all threads that are waiting on the object's monitor. yield() It causes the currently executing thread object to temporarily pause and allow other threads to execute.

Thread Scheduling

sleep() It causes the currently executing thread to pause for the specified number of milliseconds. wait() It causes current thread to wait until either another thread invokes the notify() method or the notifyAll() method for the object. join() It waits for a particular thread to die. notifyAll() It wakes up all threads that are waiting on the object's monitor. yield() It causes the currently executing thread object to temporarily pause and allow other threads to execute.

A ___ is a connection between two hosts

socket

queryString()

solution to encode(); encodes successive pairs in a Java object with the add() method.

java.security.Permission

specified what permission is needed to connect to a URL, returns null if no permission is needed

java.io.Reader

specifies the API that the characters are read with

java.io.Writer

specifies the API that the characters are written with.

overloaded variant of the URLConnection method

specifies the proxy server to pass the connection through: public URLConnection openConnection(Proxy proxy) throws IOException This overrides any proxy server set with the usual socksProxyHost, socksProxyPort, http.proxyHost, http.proxyPort, http.nonProxyHosts, and similar system properties. If the protocol handler does not support proxies, the argument is ignored and the connection is made directly if possible.

22

ssh tcp

URI Uniform Resource Identifier

string of characters in a particular syntax that identifies a resource

FileInputStream

subclass of InputStream is used to read data from a file

outputStream

subclasses of _____ use write, flush, and close to write data to a file

What uses the 5 fundamental methods of OutputStream to write data onto a network connection?

sun.net.TelnetOutputStream

In traditional secret key (or ___ ) encryption, the same key is used to encrypt and decrypt the data.

symmetric

What is used to ensure that a single thread is finished before proceeding to the next thread in multi-threading?

synchronized()

deadlock

synchronizing increases the chance of ___.

bufferedReader

takes text directly from the buffer

callable

tasks are much more efficient than spawning a thread

established a telnet connection on port 25

telnet locahost 25

Which establishes a telnet connection on port 25?

telnet localhost 25

23

telnet tcp

Which two Java testProtocol methods will determine if a server supports web traffic? Choose 2 answers

testProtocol("http://www.company.com"); & testProtocol("https://www.company.com");

MIME classification

text image model audio video application message (protocol-specific) multipart (containers)

bufferedWriter

text is placed in a buffer. has the method readLine()

Which are MIME top-level types?

text/* image/* video/*

unsupportedCodingException

what does public outputStreamWriter(outputStream out, String encoding) throw?

URL vs URI

the URI class provides much more accurate, specification-conformant behavior than the URL class. For operations like absolutization and encoding, you should prefer the URI class where you have the option. You should also prefer the URI class if you need to store URLs in a hashtable or other data structure, since its equals() method is not blocking. The URL class should be used primarily when you want to download content from a server.

getPath() vs getFile()

the first returns path and file; the latter returns the same + a query string

getPath() vs. getFile()

the getPath() method does not return only the directory path and getFile() does not return only the filename, as you might expect. Both getPath() and getFile() return the full path and filename. The only difference is that getFile() also returns the query string and getPath() does not.

construct a serversocket with no binding

the noargs contructor creates an object but doesnt bind it to a port, later can be bound with the bind() method.

authority

the part of the URI that is responsible for resolving the rest of the uri.

What is the Ethernet address?

the physical address for the interface

in symmetric encryption

the same (secret) key encrypts/decrypts data

If the relative link begins with a /

then it is relative to the document root instead of relative to the current file. Thus, if you click on the following link while browsing http://www.ibiblio.org/javafaq/javatutorial.html: <a href="/projects/ipv6/">

cipher suites

these are used to chose ___ ___ getSupportedCipherSuites() method in SSLSocketFactory not all return values are allowed on connections. getEnabledCipherSuites() tells which ones can be used.

class loaders

these are used to load resources like images and files.

InetAddress object

these methods test if a ___ ___ meets the necessary criteria: isAnyLocalAddress() isLoopbackAddress() isLinkLocalAddress() isSiteLocalAddress() isMulticastAddress() isMCGlobal() isMCNodeLocal() isMCLinkLocal() isMCSiteLocal() isMCOrgLocal()

SpamCheck

these resources include real time blackhole lists, process a high load, and can allow IP addresses to query them to determine if the thing trying to connect to them is spam or not. They have to be cacheable fast distributed using only DNS if the host succeeds and returns the address, the host is a known spammer if it fails, then it throws UnknownHostException if you use one you have to stay on top of blackhole list changes.

UnknownHostException, NoRouteToHostException, ConnectException

these three exceptions are thrown when a DNS address changes for a while before it can cached.

Should you flush PrintStream?

they should explicitly be flushed

inputStream

this class has mark(int readAheadLimit) reset() markSupported()

java.io.File

this class has a toURL() method that: returns a file URL matching the given file the exact format returned is platform dependant java file URLs often cannot be interchanged with the URLs used by web browsers and other programs

java.net.inetAddress

this class is used by most networking classes like socket, serverSocket, URL, datagram socket. includes both a hostname and an IP address.

URL

this is a URI that provides a specific network location of a resource

inetAddress.getByName(url)

this method makes a connection to the local DNS server to lookup name and numeric addresses. Throws an UnknownHostException if it can't find the address If you can't pass the IP, do a reverseDNS. If it can't find the hostname, it returns the IP

Joining

this method of indicating a thread is ready to pause: one thread needs the results of another thread indicates to the thread that it needs to wait for another thread before continuing. the thread that invokes it is the one that waits. one of these types of threads can be interrupted. acts as normal after InterruptedException moving from the catch foreward similar to using an extractor and a future thread.

Sleeping

this method of indicating a thread is ready to pause: pauses even if no other threads are available holds locks gives opportunity to run to lower priority threads will cause deadlock if it is called when synchronized

finish

this method of signaling a thread is ready to give up control: gives up control by returning from the run() method

Waiting on an object

this method of signaling a thread is ready to give up control: releases locks on an object until notified by another thread neither threads have to finish for the other to continue. pauses execution until an object reaches a certain state obtain a lock on the object with synchronized, then invoke wait() wait is part of java.lang.Object can stop if a timeout expires, the thread is interrupted, or the object is notified. the notification occures when a thread invokees notify() or notifyAll() on an object.

getDisplayName

this method returns a human friendly name for the particular network interface

getDocumentBase

this method returns the URL of the page that contains the applet getCodeBase() and returns the URL of the applet .classfile

getName

this method returns the name of a NetworkInterface object

networkInterface

this object can be a physical address like an Ethernet card, or a virtual interface bound to the same physical hardware as the machine's other IP addresses. it provides methods to enumerate all local addresses can create objects from local addresses that can be used to create sockets, server sockets, and other similar objects.

java.io

this package has fileReader fileWriter stringReader stringWriter charArrayWriter charArrayReader

multithreaded

this type of program exists when the main() and run() methods of all nondeamon threads return

daemon

this type of thread performs background tasks

What is being leveraged in this code? try (OutputStream out = new FileOutputStream("/tmp/data.txt")) { // work with the output stream... } catch (IOException ex) { System.err.println(ex.getMessage()); }

try with resources

URL

unambiguously identifies the location of a resource on the Internet. the most common type of URI

telnetInputStream

undocumented class in sun.net

ethernet interfaces

unix: eth0, et1... lookback address "lo" windows: CE31 and ELX100

what does public outputStreamWriter(outputStream out, String encoding) throw?

unsupportedCodingException

InetAddress object

untrusted code can construct an ___ ___ from the string form of an IP address, with no DNS lookups performed.

to see what any proxy servers between the server and the client might be changing

use TRACE

to return all the addresses of a host

use getAllByName()

serverSocket()

use the noargs ___ constructor does not throw exceptions does not bind to a port call bind() to bind after serverSocket() object has been constructed

the echo protocol TCP port 7

useful for testing the network to make sure that data is not mangled by a misbehaving router or firewall

high priority

user interaction and quick completion threads get what type of priority

authority

userinfo, host, port

FileOutputStream

uses these methods to write data into a file

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the authority, and what would it return?

variableURL.getAuthority( ); example.com:80

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the filename, and what would it return?

variableURL.getFile( ); /docs/books/tutorial/index.html?name=networking

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the host, and what would it return?

variableURL.getHost( ); example.com

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the path, and what would it return?

variableURL.getPath( ); /docs/books/tutorial/index.html

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the port, and what would it return?

variableURL.getPort( ); 80

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the protocol, and what would it return?

variableURL.getProtocol( ); http

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the query, and what would it return?

variableURL.getQuery( ); name=networking

Using the URL "http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING" What method would return the reference, and what would it return?

variableURL.getRef( ); DOWNLOADING

Java.io.OutputStream

void close() This method closes this output stream and releases any system resources associated with this stream. void flush() This method flushes this output stream and forces any buffered output bytes to be written out. void write(byte[] b) This method writes b.length bytes from the specified byte array to this output stream. void write(byte[] b, int off, int len) This method writes len bytes from the specified byte array starting at offset off to this output stream. abstract void write(int b) This method writes the specified byte to this output str

SO_LINGER

wait to send data, then close

requests, server errors

what are the two things that are stored in logs?

InetAddress

what class do these getter methods belong to? getHostName() gets a host with the ip address getCanonicalHostName() calls DNS getAddresses() dotted quad IP getHostAddresses() There are no setter methods so this is thread safe.

java.io.outputStream

what class do writer classes mirror

open connection

what do getInputStream(), getContent() and getHeaderField() require, and will create if they don't see one in the URL Connection class?

Read Data

what do these steps do with a URL Connection Object? 1) construct a URL object 2) invoke the URL Object's openCOnnection() method to get a URLConnection object for the URL 3) invoke the URL object's getInputStream() method 4) read from the input stream using the stream API

outputStreamWriter

what do you use to send binary data that writes a byte array instead of a writer that writes a string

IOException

what does connect throw in URL?

java.securty.permission

what does getPermission return that specifies what permission is needed to connect to the URL? (Returns null if there is not one)

encoding scheme

what does inputStreamReader convert characters based on

java.lang.Object

what does java.net.URL extend? URL is a final class uses a strategy design pattern to configure instances for different kinds of URLS

OutputStream's Fundamental Method

write(int b) - This method takes an integer from 0 to 255 as an argument and writes the corresponding byte to the output stream. This method is declared abstract because subclasses need to change it to handle their particular medium. For instance, a ByteArrayOutputStream can implement this method with pure Java code that copies the byte into its array. However, a FileOutputStream will need to use native code that understands how to write data in files on the host platform.

While browsing www.company.com/history/projects a user clicks on the link for <a href="/founders/johnsmith">, what URL will the user be redirected to?

www.company.com/founders/johnsmith.

When sending the command to retrieve and print a website address, what will the result be?

www.oreilly.com/208.201.239.36

synchronized

you can synchronize a method on the current object (this) by adding ___ to the method declaration

to use the GET method

you need to know the combination of names and values the program expects to receive

IPv6

you shouldn't make assumption about the length of an array when using getAddress() because it might return what type of address instead of an IPv4?

What are the 5 subclasses of the java.io.FilterWriter and java.io.FilterReader classes (5 total combined)

• BufferedReader • BufferedWriter • LineNumberReader • PushbackReader • PrintWriter

What are the three levels of CookiePolicy?

• CookiePolicy.ACCEPT_ALL All cookies allowed • CookiePolicy.ACCEPT_NONE No cookies allowed • CookiePolicy.ACCEPT_ORIGINAL_SERVER Only first party cookies allowed

What raw classes are given by the java.io package for reading and writing data?

• FileReader • FileWriter • StringReader • StringWriter • CharArrayReader • CharArrayWriter

There are four main HTTP methods:

• GET • POST • PUT • DELETE

What are 10 ways a thread can pause in favor of other threads or indicate it's ready to pause?

• It can block on I/O. • It can block on a synchronized object. • It can yield. • It can go to sleep. • It can join another thread. • It can wait on an object. • It can finish. • It can be preempted by a higher-priority thread. • It can be suspended. • It can stop.

There are seven levels defined as named constants in java.util.logging.Level in descending order of seriousness:

• Level.SEVERE (highest value) • Level.WARNING • Level.INFO • Level.CONFIG • Level.FINE • Level.FINER • Level.FINEST (lowest value)

There are still only three kinds of proxies, represented by three constants in the Proxy.Type enum:

• Proxy.Type.DIRECT (no proxy at all) • Proxy.Type.HTTP • Proxy.Type.SOCKS

There are two primary things you want to store in your logs:

• Requests • Server errors

By default, Java does not cache anything. To install a system-wide cache of the URL class will use, you need the following 3 subclasses:

• ResponseCache • CacheRequest • CacheResponse

For server sockets, Java supports three out of the nine options that were used for client sockets:

• SO_TIMEOUT • SO_REUSEADDR • SO_RCVBUF

Java supports nine options for client-side sockets:

• TCP_NODELAY • SO_BINDADDR • SO_TIMEOUT • SO_LINGER • SO_SNDBUF • SO_RCVBUF • SO_KEEPALIVE • OOBINLINE • IP_TOS

The URI Class differs from the java.net.URL class in three important ways:

• The URI class is purely about identification of resources and parsing of URIs. It provides no methods to retrieve a representation of the resource identified by its URI. • The URI class is more conformant to the relevant specifications than the URL class. • A URI object can represent a relative URI. The URL class absolutizes all URIs before storing them.

URLs are composed of five pieces:

• The scheme, also known as the protocol • The authority • The path • The fragment identifier, also known as the section or ref • The query string


Related study sets

Management of Patients with Oncologic Disorders (15) PrepU

View Set

HY 102 Test 2 Inquisitive Questions

View Set

Priority Setting Frameworks Beginning Test

View Set

Chapter 20 California Life Insurance

View Set

INSY 3330 e-Commerce Final Exam (all quizzes combined)

View Set

Gilded Age, Gilded Age, The Gilded Age

View Set

Marianna Sidoryanskaya Macroeconomics Quiz 3

View Set